💽 디지털 공학 개론

디지털 IC

  • IC 칩(Intergrated Circuit chip: 집적회로 칩)
    • 반도체 물질인 실리콘 조각 위에 논리 게이트들을 구현하는 트랜지스터들과 연결선들을 아주 작은 크기로 집적시켜 제조한 논리회로 부품
  • 트랜지스터(transistor)
    • 규소게르마늄으로 만들어진 반도체를 세 겹으로 접합하여 만든 전자회로 구성요소
    • 전류전압 흐름을 조절 >> 증폭, 스위치 역할
    • 가볍고 낮은 소비전력 >> 진공관 대체 >> 대부분의 전자회로에 사용
    • 접합형 트랜지스터
    • 전기장 효과 트랜지스터
  • 집적도(degree of integration)
    • 1개의 반도체 칩에 구성되어 있는 소자 수
    • 기판 위 논리 게이트 수
    • 하나의 칩에 있는 다이오드, 저항, 트랜지스터와 같은 다기능 디지털 소자의 개수를 나타내는 정도
    • 칩당 소자 수

IC 종류

  • 집적도에 따른 분류
    • 하나의 칩에 넣을 수 있는 트랜지스터 수 증가 = 칩 내부에 들어가는 게이트 수가 많아짐
    • SSI(Small Scale IC): 수십 개의 트랜지스터들이 집적되는 소규모 IC로, 기본적인 디지털 논리 게이트 포함
    • MSI(Medium Scale IC): 수백 개의 트랜지스터들이 집적되는 IC로, 카운터, 해독기, 시프트 레지스터와 같은 조합 회로순차 회로 포함
    • LSI(Large Scale IC): 수천 개의 트랜지스터들이 집적되는 대규모 IC로, 8비트 마이크로프로세서 칩이나 소규모 반도체 기억장치 칩 등의 구현에 사용
    • VLSI(Very Large Scale IC): 수만 내지 수십만 개 이상의 트랜지스터들이 집적되는 초대규모 IC로, 16비트 이상의 마이크로프로세서나 대용량 반도체 기억장치 등의 구현에 사용
    • ULSI(Ultra Large Scale IC): 수백만 개 이상의 트랜지스터들이 집적 IC로, 32비트급 이상의 마이크로프로세서 칩들과 수백 메가비트 이상의 반도체 기억장치 칩들의 구현에 사용
  • 패키징 방식에 따른 분류
    • 패키징: 집적 회로를 외부로부터 보호하고 다른 부품과 연결시켜 사용 >> 플라스틱류의 특수 재료를 이용하여 적절하게 감싼다
    • 듀얼 인-라인 패키지(Dual In-line Package: DIP): 핀들이 양쪽으로 나열되고 기판이 직각으로 꽂히는 형태, 적은 수의 논리 게이트를 포함하고 있는 IC 칩에 널리 사용하고 있는 패키징 방식, PCB 보드의 양쪽 면을 모두 사용
    • 표면 장착 기술(Surface-Mount Technology: SMT): PCB 한 쪽 면에만 부착시키도록 하는 방식, SOP(Small Outline Package, 핀들이 바깥으로 구부러져 있어 PCB 상의 리드선들과 쉽게 접속), LLC(Leadless Chip Carrier, 핀들이 정방형 패키지의 네 모서리를 따라 설치, 칩 하부의 안쪽으로 구부러진 형태)
    • 격자형 패키지: 패키지 아래 면 전체를 사용하는 패키지, BGA(Ball Grid Array), PGA(Pin Grid Array)
    • 일자형 패키지: 공간을 적게 차지하는 방식, 적은 입력선 수로 다수의 칩들을 PCB 상에 설치하기 용이, SIP(Single In-line Package), ZIP(Zip-zag In-line Package)
  • 구현되는 기술 방식에 따른 분류
    • TTL(Transistor Transistor Logic): 트랜지스터-트랜지스터 논리, 이전의 다이오드-트랜지스터 논리(DTL)에서 성능 향상을 위해 트랜지스터로 바꾼 것, 가장 보편적인 논리군
    • ECL(Emitter coupled Logic): 에미터-결합 논리, 슈퍼컴퓨터나 신호처리기 같은 고속 연산이 요구되는 시스템에 사용
    • MOS(Metal oxide Semiconductor): 금속-산화물 논리, 단상 트랜지스터가 사용, 밀도가 높아야 하는 회로에 사용, 대부분 MOS에서 채널을 형성하는 캐리어가 전자NMOS가 대부분
    • CMOS(Complementary Metal oxide Semiconductor): 상보 금속-산화물 논리, 낮은 전력 소모가 요구되는 시스템에 사용, NMOS와 PMOS(캐리어가 정공hole인 MOS)를 서로 연결하여 제작 >> 높은 밀도와 단순한 제조 공정 >> 낮은 전력 소비 >> 경제적

💻 마이크로프로세서

프로그래밍 언어의 종류

  • 프로그램: CPU가 순차적으로 처리해야 할 일을 만드는 것
  • 명령어(Instruction): CPU가 처리해야 할 일
  • 기계어: CPU가 이해할 수 있는 언어, 기계 고유의 언어
  • 니모닉 코드(Mnemonic Code)
    • 사람이 이해하기 쉽도록 기호 또는 문자를 압축해서 만든 코드
    • 기계어의 비트 형식이 나타내는 의미를 symbol로 표현
    • 프로그램을 이해하거나 작성하기 쉬움
  • 프로그래밍 언어의 종류
    • 고급 언어: FORTRAN, COBOL, C언어
    • 중급 언어: 어셈블리어
    • 저급 언어: 기계어
  • 소스 프로그램: 어셈블리어나 고급 언어로 작성한 원본 프로그램, 원시 프로그램
  • 목적 프로그램: 변환된 기계어 프로그램
  • 어셈블리어
    • 기계어의 비트 형식을 니모닉 코드로 나타낸 것
    • 기계어처럼 사용할 CPU에 따라 명령어 다름
    • 문법 체계 외에도 데이터 표현 방식과 사용하려는 CPU에 관한 기초 지식이 필요
    • 기능이 동일한 프로그램을 CPU에 따라 다르게 프로그래밍해야 하는 단점
  • 어셈블리어로 프로그래밍 하는 경우
    • 컴퓨터 하드웨어의 구성 요소에 직접 액세스할 때
    • 컴파일러를 설계하거나 시스템 프로그램을 작성할 때
    • 빠른 수행이 필요한 프로그램을 작성할 때
    • 기억 장소를 적게 차지하거나 입출력 장치를 효율적으로 사용할 때

C언어와 컴파일러

  • 마이크로프로세서를 동작시키기 위한 언어: 어셈블리어 / C언어
  • 어셈블리어
    • 수행 속도메모리 측면에서 유리
    • 마이크로컨트롤러마다 다르다는 단점
  • C언어
    • 보다 쉽고 간편하게 프로그램 작성 가능
    • 컴파일러에 따라 정확한 시간 산출이 측정 불가
    • 메모리 효율적 측면에서 불리
  • C언어 자료형
    - 단위: byte
  • 부호 지시어
    • unsigned: 0부터 양수값만
    • signed: 음수~0~양수, 표기 생략
  • 정수 상수
  • 실수 상수 > 고정 소수점 방식
    • 소수점을 찍어 정수부실수부로 나누어 표시
    • 23.6534: .434[앞의 0 생략] / -25.[뒤의 0 생략]
  • 실수 상수 > 부동 소수점 방식
    • 가수부지수부로 나누어 표시
    • 5329e[5329 X 10^5] / -5.3e-4[-5.3 X 10^-4]
  • 문자 상수
    • 하나의 문자로 이루어진 상수
    • 작은 따옴표 사이에 하나의 문자로 표현
    • 문자 상수들은 아스키(ASCⅡ) 값
    • 'A' 10진수: 65, 16진수: Ox41
    • 'a' 10진수: 97, 16진수: Ox61
  • 문자열
    • 큰따옴표 사이에 문자열을 넣어서 사용
    • 한글2칸, 영문1칸 차지
    • 을 알려주는 null 포함
    • "Atmega 수업"(6자) >> Atmega(6자) + 수업(2자x2=4자) + 빈칸(1자) + null(1자) = 12자 공간 필요
  • #define
    • 어떤 특정한 값미리 정해주는 역할
    • #define PI 3.14(파이 값을 정의하기 위한 기호 상수)
  • 연산자
    • 산술 연산: 사칙연산(+,-,*,/), %(나머지)
    • 증가/감소 연산: a++, ++a(a=a+1) / a--, --a(a=a-1)
    • 대입 연산: 사칙연산, a+=1(a=a+1) / a-=1(a=a-1)
    • 관계 연산: >, >=, a==b, a!=b
    • 논리 연산
      - !(a식): (a식)이 거짓(논리 0)이면 참(논리1), 참이면 거짓
      - (a식)&&(b식): (a식)과 (b식)이 모두 참(논리1)이면 참
      - (a식)||(b식): (a식) 또는 (b식)이 참 논리(1이면) 참
    • 비트 연산
      - ~a: a를 비트 단위로 반전
      - a <<= 2: a의 각 비트를 왼쪽으로 2회 시프트
      - a >>= 2: a의 각 비트를 오른쪽으로 2회 시프트
      - a&=b: AND
      - a|=b: OR
      - a^=b: XOR

비트 연산

  • 비트 OR 연산자(|)
    • 동일한 위치의 비트끼리 OR 연산 수행
    • 둘 중 하나가 1이면 결과는 1, 다시 말해서 둘 다 0일 때만 0
  • 비트 AND 연산자(&)
    • 동일한 위치의 비트끼리 AND 연산 수행
    • 둘 중 하나가 0이면 결과는 0, 둘다 1일 때만 1
  • 비트 XOR 연산자(^)
    • 동일한 위치의 비트끼리 XOR 연산 수행
    • 둘이 서로 다르면 결과는 1, 둘 다 같으면 0
  • 왼쪽 비트 shift 연산자(<<)
    • 변수를 좌측으로 n비트만큼 shift
    • shift되면서 우측 비트는 0값이 채워짐
    • 1비트 왼쪽으로 shift할 때, 2를 곱한 결과
    • a=a<<2
  • 오른쪽 비트 shift 연산자(>>)
    • 1비트 오른쪽으로 이동하면 2로 나눈 결과
    • a=a>>1
  • 연산자 우선순위
    • 우선순위에 따라 연산 순서가 정해짐
    • <<, >>은 같은 우선순위이지만 왼쪽에서 오른쪽으로 수행
    • shift 먼저, 그 다음 논리 연산

C언어 자료형

  • 정수 데이터
    • 65535자
  • 실수 데이터
    • float: 소수점 이하 7자리까지
    • double: 소수점 이하 15자리까지
    • 일반적으로 6자리까지
  • 문자형 데이터
    • 255자
  • 데이터 형의 사용
    • 제어 시스템 프로그램은 부호의 의미가 없는 경우가 많음
    • 8비트 또는 16비트의 데이터 형 많이 사용
    • 8비트 형태의 부호 없는 문자형인 unsigned char형
    • 16비트 형태의 부호 없는 정수형인 unsigned int형
    • 두 가지 형태의 데이터형은 typedef를 사용하여 표현
    • typedef unsigned char u08
    • typedef unsigned int u16
  • printf()

💾 시스템 프로그래밍

리눅스 파일 입출력

  • 파일
    • 관련 있는 데이터 집합
    • 정보를 저장하기 위한 가장 기본적인 단위
    • 보조 기억 장치에 저장
  • 파일 사용하는 이유
    • 데이터를 저장
    • 장치에 접근
  • 파일 종류
    • 일반 파일: 텍스트 / 바이너리 형태의 데이터를 저장하는 파일
    • 특수 파일
      - 데이터 전송
      - 장치 접근에 사용하는 파일(device file)
    • 디렉토리
      - 파일 저장 위치, 공간
  • 파일 구성
    • file name: 파일 접근 시 사용
    • i-node: 파일의 정보(소유자, 크기, 데이터 블록의 실제 위치 주소)
    • data block: 데이터가 저장되는 실제 하드 디스크 공간
  • i-node
    • 파일 종류, 접근 권한, 하드 링크 개수, 소유자의 UID/GID, 파일의 크기, 파일 접근 시각/수정 시각, i-node 변경 시각
    • sys/stat.h 파일에 정의되어 있는 stat 구조체에 저장
    • 파일 정보 검색: int stat
    • 파일 접근 권한 확인: int access
    • 파일 접근 권한 변경: int chmod
  • 저수준 파일 입출력과 고수준 파일 입출력 비교

리눅스 파일 접근 권한

  • 소유권
    • 리눅스는 다중 사용자 지원 운영체제
    • 시스템 및 사용자 소유의 파일 접근 권한 보호제한
  • 파일 속성
    • 10의 자리에 파일 종류, 소유자, 소유그룹, 사용자 권한을 표시
  • 파일 종류
    • d: 디렉토리
    • l: 심볼릭 링크 파일
    • c: 특수 파일(문자 장치)
    • b: 특수 파일(블록 장치)
    • -: 일반 파일
  • 읽기 쓰기 실행 권한
    • r: 읽기 가능, 복사 가능(100(2) / 4(8))
    • w: 쓰기 가능, 수정, 이동, 삭제 가능(10(2) / 2(8))
    • x: 실행 가능, 파일 실행 가능(1(2) / 1(8))

📠 운영체제

오프라인 시스템

  • 일괄처리 시스템(Batch Processing System)
    • 대부분의 오프라인 시스템에서 활용
    • 초기 컴퓨터 시스템에서 사용
    • 프로그램 오류 수정 작업 어려움
    • 컴퓨터 시스템 효율적로 사용
    • 늦은 반환시간
    • 작업 처리 시, CPU 유휴 시간(일하는 도중 쉬는 시간) 감소
    • 작업 처리X > CPU 유휴 시간 증가
    • 급여 계산, 은행 결산, 시험(OMR) 등의 업무에 활용

온라인 시스템

  • 일괄처리 시스템(Batch Processing System)
    • 온라인 상으로 연결하여 일괄 처리
    • 작업 제어 언어(JCL) 필요
    • 프로그램 오류 수정 작업 어려움
    • 컴퓨터 시스템 효율적으로 사용
    • 늦은 반환시간
    • 작업 처리 시, CPU 유휴 시간(일하는 도중 쉬는 시간) 감소
    • 작업 처리X > CPU 유휴 시간 증가
    • 급여 계산, 은행 결산, 시험(OMR) 등의 업무에 활용
  • 다중 프로그래밍 시스템(Multi-Programming System)
    • 하나의 CPU를 이용하여 여러 개의 프로그램을 동시에 처리
    • 하나의 주기억장치에 여러 개의 프로그램 저장 + 동시에 수행
    • CPU의 유휴 시간 감소
      • CPU 사용률 증가
      • 프로그램 처리 속도 향상
      • 프로그램 처리량 증가
    • 기억 장치 관리 기법 필요
    • CPU 스케쥴링 기법 필요
  • 시분할 시스템(Time Sharing System)
    • 한 대의 컴퓨터(서버)를 여러 명의 사용자가 사용 >> 각자 독립된 컴퓨터를 사용하는 것처럼 사용
    • CPU를 여러 명이 공동으로 사용
    • 하나의 CPU가 여러 프로그램을 동시에 수행 불가 >> 교대로
    • CPU 사용 시간을 일정 시간으로 강제 할당
    • CPU 스케줄링 기법에 따라 CPU 사용 순서 결정
  • 다중 처리 시스템(Multi-Processing System)
    • 여러 개의 CPU를 이용하여 여러 개의 프로그램을 동시에 처리
      • 하나의 CPU가 고장나더라도 업무 수행 가능
      • 시스템의 안전성 증가
      • 시스템의 신뢰도 증가
    • 여러 개의 CPU 공유스케쥴링 결정 요구
      • 최적의 연결 기법
      • 기억 장치, I/O 장치 등의 자원 공유 문제
    • 강 결합 다중처리 시스템
      • CPU 간 매우 밀접하게 동기화
    • 약 결합 다중처리 시스템
      • CPU 간 밀접 보다 작업 처리량 향상에 중점(분산 처리)
  • 실시간 처리 시스템(Real Time Processing System)
    • 데이터 발생 후, 즉시 처리하는 방식
    • 처리 시간 단축
    • 처리 비용 절감
    • I/O 데이터 임시저장 장소 필요
    • 시스템 장애 시, 업무 마비
    • 레이더 추적, 은행, 호텔/교통 시스템 좌석 예약, 가상 현실, 로봇 제어 등에 활용
  • 분산 처리 시스템(Distributed Processing System)
    • 지역적으로 분산여러 대의 컴퓨터를 네트워크 연결을 통해 작업 처리
    • 각각의 컴퓨터 운영체제는 같지 않아도
    • 자원 공유
    • 처리 속도 증가
    • 신뢰도 향상
    • 네트워크 통신 기능
  • 다중 모드 처리 시스템(Multi-Mode Processing System)
    • 일괄처리, 시분할, 다중처리, 실시간 시스템을 모두 제공하는 시스템
  • 병렬 처리 시스템(Parallel Processing System)
    • 둘 이상의 프로세서를 이용하여 작업을 동시에 처리하는 시스템
    • 여러 개의 프로세서를 통해서 각각 작업을 수행 >> 단위 시간당 처리량을 높여 처리 능력 향상
    • 빠른 시분할 처리

📺 전산 개론

아날로그 정보와 디지털 정보

  • 아날로그 데이터: 연속적인 데이터
  • 디지털 데이터: 비연속적인 데이터
  • 숫자뿐만 아니라 사운드, 이미지, 동영상과 같은 다양한 데이터고유한 아날로그 방식의 표현과 디지털 방식의 표현 존재
  • 디지털과 아날로그 컴퓨터의 차이점
  • 아날로그 > 디지털 변환
    • 실세계 데이터는 원래 아날로그 데이터
    • 숫자 3이나 문자 사과 등은 사람에 따라 쓰는 방식이 다 다름
    • 디지털 세계에서는 모든 글자가 동일한 방식으로 표현되고 저장됨
    • 아날로그 데이터나 정보는 모두 적절한 과정을 거쳐 디지털 데이터로 변화
    • 원래 아날로그 데이터에 얼마든지 가깝게 디지털화 가능
  • 디지털 데이터의 이점
    • 처리 방식이 같아져 정보의 호환성이 높아짐
      • 디지털로 변환하면 데이터의 종류에 관계 없이 동일한 방식으로 처리
    • 컴퓨터의 회로디지털 정보를 처리하고 저장하기 쉽게 고안되어 설계에 반영
    • 데이터 전송 오류나 손실의 문제점을 최소화
      • 일단 디지털화 되면 동일한 저장 매체에 수록할 수 있고 동일한 매체로 전송 가능
      • 모든 데이터가 디지털 형태로 변환(디지털 도서관)
    • 문자, 숫자, 이미지, 사운드, 동영상등이 아날로그 형태로 존재할 때는 그 특성이 상이하여 저장, 처리, 전송 방식이 모두 다름
      • 디지털 데이터는 동일하게 처리

정보의 디지털화

  • 컴퓨터 내부의 모든 정보 표현은 2진수, 즉 0과 1인 디지털로 표현된다
  • 이진법(Binary System)
    • 0과 1의 두 가지 상태
    • ON/OFF
    • True/False
    • 5볼트, 0볼트(중간 값존재하지 않는 상태로 인식)
  • 소리 정보의 디지털화
    • 표본화: 아날로그 소리 신호에서 일정한 간격으로 디지털화하기 위한 표본 추출 과정(표본 점이 많을수록 정확)
    • 양자화: 추출된 신호 크기인 진폭을 정해진 대푯값으로 표현하는 과정
    • 부호화: 양자화에서 얻어진 정수값2진 부호로 표현하는 과정(직사각형 적분법과 유사)
  • 이미지의 디지털화
    • 실세계 장면의 사진, 그림 이미지: 아날로그 형태로 존재
    • 디지털이미지는 픽셀로 구성
      • 수직, 수평 방향의 픽셀
      • 예: 수직, 수평 방향으로 각각 1000개 픽셀 >> 1000x1000=100000000 (백만 픽셀)
    • RGB 컬러 모델
      • 각 픽셀을 표현하기 위해 (Red, Green, Blue)에서 각 컬러가 1바이트 차지
      • 예: 1,000,000픽셀 x 3바이트 = 3백만 바이트
    • 멀티미디어 정보의 특성
      • 멀티미디어 데이터: 숫자, 문자, 사운드, 이미지, 그래픽, 동영상 등 동일한 2진 데이터를 다르게 해석
      • 특성: 데이터 용량이 매우 크다 >> 데이터의 압축 용도환경에 따라 다양한 형태로 표현
profile
There's Only One Thing To Do: Learn All We Can

0개의 댓글