💽 디지털 공학 개론

디지털 논리연산

  • 논리 연산
    • 2진 비트로 표현된 정보 처리
    • 모든 디지털 시스템의 기본 연산
  • 디지털 시스템
    • 2진 논리 회로(binary logic circuit)로 구현
  • 논리 회로
    • 두 개의 상태(0, 1)로 표현되는 입력 신호에 대해 논리적 연산을 수행하는 전자회로

  • 기본 논리 연산
    • AND, OR, NOT 연산
  • AND 연산
    • 두 개의 스위치가 모두 닫혀있어야 램프가 켜짐
    • 논리식: L=AB, L=A*B
    • 연산
    • 직렬 연결
  • OR 연산
    • 두 개의 스위치 중, 어느 하나만 닫혀도 램프가 켜짐
    • 논리식: L=A+B
    • 연산
    • 병렬 연결
  • NOT 연산
    • 스위치가 닫히면 램프가 꺼지고, 열리면 켜짐
    • 논리식: L=A'(프라임, 대시)

논리 게이트

  • 논리 게이트
    • 2진 정보를 처리하기 위한 기본적인 논리회로 부품
    • 트랜지스터를 이용하여 구현
    • 기본적인 논리게이트: AND, OR, NOT 게이트
  • AND 게이트
    • AND 연산을 수행하는 논리 게이트
    • 출력 함수: F=AB, F=A*B
    • 진리표, 진리 지표(2^2=4)
  • OR 게이트
    • OR 연산을 수행하는 논리 게이트
    • 출력 함수: F=A+B
    • 진리표, 진리지표(2^2=4)
  • NOT 게이트
    • 입력신호를 반전시켜 출력하는 논리 게이트
    • 인버터(inverter)
    • 출력 함수: F=A'
    • 진리표, 진리지표(2^1=2)
    • 버블

💻 마이크로프로세서

AVR 소개

  • AVR
    • 1997년, 미국 Atmel사에서 개발
    • 8비트 제어용 마이크로콘트롤러 시리즈
    • 대중적으로 널리 사용되는 원칩 마이크로컴퓨터
    • 하버드 구조
    • 파이프라인 처리 방식(명령어 단일 클럭으로 실행)
    • RISC(Reduced Instruction Set Computer) 방식
    • 명령어 처리 속도효율성이 높음
    • 사용자 편의를 위해 ISP(In-System Programming) 방식으로 개발 >> ROM-writer
  • AVR 마이크로콘트롤러 패밀리
    • 메모리의 용량 및 입출력 장치 개수를 비롯한 주요 기능 외에 핀의 개수, 칩 크기에 따라 응용 범위 달라짐
    • 내장 메모리 용량 및 핀의 개수의 크기에 따라 ATiny, AT90, ATmega 패밀리
    • AT90 사용이 저조하여 단종
  • TINY AVR family
    • 내부 RAM 없거나 매우 적은 모델
    • 핀 수도 적음
    • 간단한 응용 시스템, 제품 개발
    • 1KB~2KB의 플래시 메모리(내부)
  • MEGA AVR family
    • 8KB~256KB의 플래시 메모리(내부)
    • 가장 규모가 크며 성능이 높고 가격이 비쌈
    • 28~64핀, 최대 7개의 I/O 포트
    • 프린터, FAX, CD-ROM, 통신 장비의 컨트롤러 제어기
  • 특수 용도 AVR(ASSP AVRs)
    • 차량용, CAN 통신용, LCD 드라이버, 배터리 컨트롤러, USB 내장
  • RISC
    • 발진 주파수가 내부 클럭(전기적 진동 신호)
    • 기본 명령의 실행 시간: 1 클럭
    • 32개의 범용 레지스터가 ALU(연산 장치)에 직접 연결 >> 모든 연산 및 전송이 레지스터에서 레지스터로
    • 2단계의 파이프라인 구조
  • 하버드 구조
    • 프로그램 버스와 데이터 버스가 별도
    • 동시에 액세스 가능
    • 데이터 메모리: 레지스터 파일 형태로 통합 관리
    • 레지스터와 데이터 메모리를 레지스터 파일이라고 하는 하나의 통합된 공간에 같이 배치
    • 레지스터 대 레지스터의 방식으로 일괄 통합 관리
    • 레지스터와 메모리 간에 상호 전송 필요X
    • 명령어 수 줄이고 속도 빨라짐
  • CMOS 구조
    • 소비 전력이 매우 적음
    • 전달 특성 우수
    • 동작 전압 범위 넓음
  • 플래시 메모리 탑재(EEPROM)
    • 프로그램 메모리가 플래시 메모리로 되어 있음
    • ISP 기능 제공: 손쉽게 프로그램 다운로드
  • C언어에 최적화된 설계
    • RISC 구조 >> CPU 내부 명령어 적음
    • 컴파일 과정에서의 최적화 수행 여부가 성능에 중요한 역할
    • 어셈블리어 코드보다 최적화 컴파일러가 만든 어셈블리어 코드가 크기도 작고 속도도 빠르게 함
    • 개발 단계에서부터 C언어 최적화 고려하여 설계

ATmega128의 특징

  • 컴퓨터 구조
    • 8비트 마이크로콘트롤러로서 저소비 전력
    • RISC 구조
    • 133종의 명령어 세트 >> 1클럭 실행 사이클
    • 명령 처리 속도: 16MHz, 평균: 16MIPS
    • 8비트 범용 작업 레지스터 32개
    • 2 사이클로 실행되는 곱셈기
    • 다수의 I/O 제어용 레지스터
  • 메모리의 구성
    • 4KB의 데이터 저장용 SRAM
    • 4KB의 데이터 저장용 EEPROM
    • 외부에 최대 64KB의 데이터 메모리를 인터페이스
    • memory-mapped I/O 방식 사용
    • 외부 I/O 번지는 데이터 메모리 영역에 할당
  • I/O 장치의 구성
    • 8비트 병렬/O 포트 6개 + 5비트 병렬 I/O 포트 1개(G)
    • USART 직렬 통신 포트 2개 >> 전이중 통신방식(동시에 양방향 통신)
    • SPI 및 TWI 직렬 통신 포트
    • 8비트 타이머/카운터(0,2) 2개
    • 16비트 타이머/카운터(0,3) 2개
    • 2개의 8비트 PWM(펄스 폭 변조) 출력
    • 6개의 2~16비트 PWM 출력
    • 1개의 아날로그 비교기
  • 프로그램 및 동작
    • 128KB의 ISP 방식 프로그램용 플래시 메모리
    • 10000번까지 지우고 다시 쓸 수 있음
    • ISP 전용 SPI 인터페이스 핀
    • 리셋 벡터 + 외부 인터럽트 8개 = 인터럽트 벡터 35개
  • 기타 특징
    • 슬립 모드: 6개의 파워 절약 모드
    • ATmega103 호환 모드
    • 64핀 TQFP(Thin Quad Flat Package)
    • 64핀 MLF(Micro Lead Frame)
    • TQFP: PC 카드(PCB: 집적회로판)처럼 공간이 제약된 응용 제품 설계 시 사용되는 집적 회로
    • MLF: 변환기판에 사용 가능한 집적 회로
    • L: 2.7V~5.5V의 전원 전압 및 0~8MHz의 시스템 클럭에서 동작
    • 128: 4.5V~5.5V의 전원 전압 및 0~16MHz의 시스템 클럭에서 동작
  • 핀 배치 및 기능
    • VCC: 전원 공급(+)
    • GND: 전원 접지(-)
    • Port A~E: 8비트 양방향 입출력 포트
    • Port F: + A/D기능 내장
    • Port G: 5비트 양방향 입출력 포트
    • XTAL1,2: 클럭 단자(외부)
    • AVCC: Port F의 A/D 변환기 회로 전원 공급(+)
    • AREF: A/D 변환기의 아날로그 기준 전압 핀
    • PEN: SPI 시리얼 프로그램 모드 시 프로그램 인에이블 핀

ATmega128 내부 구조

  • 메모리
    • 플래시 프로그램 메모리
    • EEPROM
    • 데이터 메모리(SRAM)
  • 프로그램 카운터(PC)
    • 다음에 실행할 명령어 주소 가리킴
    • 플래시 프로그램 메모리 공간
    • 명령어를 차례로 인출 >> 응용프로그램 실행
  • 명령어 레지스터(IR)
    • 프로그램 카운터가 지정한 곳에서 명령어 레지스터로 명령어 인출
  • 명령어 디코더
    • 명령어 레지스터의 명령 코드를 디코딩 >> 제어 신호 생성
    • ALU: 명령 코드에 해당되는 연산 동작 수행
    • 제어 신호: 연산 대상이 되는 오퍼랜드를 ALU에 전달 & 연산 결과 저장
  • 범용 레지스터
    • 데이터 레지스터: 데이터를 저장하는 레지스터
    • 주소 레지스터: 레지스터 간접 주소 방식을 위한 레지스터
  • 기타 주변 장치
    • USART: 범용동기/비동기 직렬송수신장치
    • SPI 통신: 직렬 주변장치 인터페이스
    • JTAG: 디버깅 수행
    • ISP: 내장된 플래시 메모리에 실행 코드 직접 다운로드
  • 플래시 프로그램 메모리
    • 프로그램 저장
    • 비휘발
    • 128Kbyte
    • 10,000회 쓰고 지우기
    • 다운로더(ISP 장치)
    • 부트 프로그램: 부팅에 필요한 기본 정보(운영체제)
    • 응용 프로그램: 워드 단위(16비트)의 명령어로 구성
  • EEPROM
    • 비휘발성: 프로그램 실행 중 생성된 데이터 유지
    • 4Kbyte
    • SRAM보다 속도가 느림
  • 데이터 메모리(SRAM)
    • 휘발성 메모리
    • 변수는 프로그램 수행 중 변경 가능
    • 변수 저장
    • 4Kbyte 내장
  • 동작 절차
    • PC(프로그램 카운터) >> MAR(메모리 주소 레지스터) >> MBR(메모리 버퍼 데이터) >> IR(명령어 레지스터) >> Decoder >> ACC(누산기)

💾 시스템 프로그래밍

리눅스 컴파일의 개요

  • 컴파일러
    • 텍스트로 작성한 프로그램을 시스템이 이해할 수 있는 기계어로 변환하는 과정
    • 컴파일 과정 + 라이브러리 링크 과정
  • GNU C 컴파일러, gcc
    • 리눅스에서 무료로 제공
    • 기능: C 프로그램을 컴파일해 실행 파일 생성
    • 형식: gcc [옵션] [파일명]
    • -c: 오브젝트 파일(.o)만 생성
    • -o 실행 파일명: 지정한 실행 파일 생성하고 기본 실행 파일명은 a.out
# gcc test.c
# ls
a.out test.c
# gcc -o test test.c
# ls
test test.c
  • /user/local/bin 디렉토리에 설치됨 >> 경로 추가해야 함

Makefile과 make

  • 소스 파일 여러 개를 묶어서 실행 파일 생성하는 도구
  • make 명령은 Makefile 내용에 따라 컴파일
  • /user/ccs/bin을 경로에 추가해야 함
// main.c
#include <stdio.h>
extern int addnum(int a, int b); // 외부 함수

int main(void)
{
    int sum;
    
    sum = addnum(1,5);
    printf("Sum 1~5 = %d\n", sum);
    
    return 0;
}
// addnum.c
int addnum(int a, int b)
{
	int sum = 0;
    
    for (; a<=b; a++)
    	sum += a;
    return sum;
}
# Makefile // 환경 설정

CC = gcc // 컴파일러
...
OBJS = main.o addnum.o // 오브젝트 파일
LIBS =
all:	add // 실행 파일 생성
...
# make
gcc -c main.c
gcc -c addnum.c
gcc -o add main.o
       addnum.o
# ls
Makefile add* addnum.c
addnum.o      main.c
main.o
# add
Sum 1~5 = 15

리눅스 기본 명령어들

  • 프롬프트
    • 사용자의 명령 입력 기다리는 표시
    • 쉘에 따라 다르게 나타남
    • 배시 쉘($) / 시스템 관리자(#)
  • 기본 디렉토리
    • 사용자의 홈 디렉토리
    • user1(사용자 계정)@ubuntu(호스트 이름):~$
    • 사용자 계정 등록 시, 지정
  • 명령 행 편집 방법
    • 프롬프트 다음에 명령어 입력
    • 문자 지우기: 백스페이스, delete 키
    • 단어 지우기: ctrl + w / 공백 문자로 구분
    • 문장 지우기: ctral + u
  • 리눅스 명령어의 구조
    • 형식: 명령어 [옵션] [인자]
    • 옵션: 명령어 사용 시, 세부 기능 선택 / 없을 수도 있음 / - 또는 --로 시작
    • 인자: 명령어에 전달되는 값 / 파일 명 or 디렉토리 명
    • 예시: ls -al bbs
  • 로그인 관련
    • telnet: 유닉스/리눅스에 원격 접속
    • logout: 접속 해제
    • exit: 접속 해제
    • shutdown: 리눅스 종료 명령(r/h/c)
  • 파일/디렉토리 관련
    • pwd: 현재 디렉토리 경로 출력
    • ls: 디렉토리 내용 출력
    • cd: 현재 디렉토리 변경
    • cp: 파일 및 디렉토리 복사(r)
    • mv: 파일 및 디렉토리 이름 변경 및 이동
    • rm: 파일 및 디렉토리 삭제(r)
    • mkdir: 디렉토리 생성
    • cat: 파일 내용 출력
    • more: 페이지 단위로 내용 출력
    • chmod: 파일 접근 권한 변경
    • grep: 패턴 검색
  • 프로세스 관련
    • ps: 현재 실행 중인 프로세스의 정보 출력(ef)
    • kill: 프로세스 강제 종료(9)
  • 기타 명령
    • su: 사용자 계정 변경
    • tar: 파일 및 디렉토리 묶기(tar) / 압축(gz)
    • whereis: 파일 위치 검색
    • date: 현재 날짜 출력
    • clear: 현재 화면에 보이는 내용 지우기
    • passwd: 사용자 계정의 비밀번호 변경

📠 운영체제

운영체제 발달 과정

  • 1세대
    • 진공관 사용
    • 기계어 사용: 기계어로 프로그램 작성
    • 운영체제 의미x
  • 2세대
    • 트랜지스터 사용
    • 일괄처리 시스템 등장(버퍼링, 스풀링)
    • 작업 제어 언어 등장
    • 한 작업에서 다른 작업으로의 전환 자동 처리
    • 입출력 제어 시스템 등장
    • 기계어, 어셈블리어 사용
  • 3세대
    • 트랜지스터 + IC(집적회로) 사용
    • 운영체제 고급 언어(C언어)로 작성: UNIX
    • 장치 독립성 제공
    • 다중모드: 일괄, 시분할, 실시간, 다중처리
    • 작업제어 언어 복잡: 명령어 많아짐
    • 소프트웨어 계층 구조 개념과 소프트웨어 공학 등장
    • 다중 프로그래밍: 다중 사용자를 위한 CPU 작업 할당
    • 다중처리: 다중 프로세스를 위한 시스템 처리 능력 향상
    • 시분할 시스템: 사용자와 컴퓨터 인터페이스 운영으로 시분할 시스템 등장
  • 4세대
    • LSI(고밀도 집적 회로) + VLSI(초고밀도 집적 회로)
    • 컴퓨터 네트워크와 온라인 처리
    • 마이크로프로세서 등장 >> PC 개발
    • 가상기계, 데이터베이스 시스템 등장
    • 분산 데이터 처리 개념
    • UNIX, DOS, VMS 사용
    • Windows 개발
    • 워크스테이션, 멀티 프로세서 일반화
  • 5세대
    • VLSI, 조셉슨 소자, 칼륨-비소 소자, 광-소자 사용
    • 네트워크 시스템, 분산처리 시스템 실용화
    • 지식기반 시스템 등장
    • 인공지능 실현
    • 논리, 추론 기능 강화
    • 가상 머신 개념 등장
    • 사용자와 컴퓨터 간 대화 기능 실현
    • 정보 기술 융합 실현
    • GUI 등 사용자 위주의 시스템

운영체제의 종류

  • 서버용 운영체제
    • UNIX, LINUX, Windows NT, ..., OS X Server
  • 개인용 운영체제
    • IBM-DOS, MS-DOS, Windows95, ..., MacOS
  • 단일 작업 처리는 DOS 사용
    • CLI, CUI
  • 다중 작업 처리는 Windows 비롯하여 UNIX, Linux 사용
    • GUI, CLI, CUI
  • Windows95 이전의 Windows 3.1 버전들은 운영체제가 아니라 응용 프로그램에 속한다

📺 전산 개론

컴퓨터 네트워크와 인터넷

  • 컴퓨터 네트워크인터넷
    • LAN(Local Area Network): 한 건물이나 비교적 가까운 장소
    • WAN(Wide Area Network): LAN을 다시 연결, 보다 광역화된 네트워크
    • 인터넷망: 1969년, ARPAnet으로 시작
    • (WWW: World Wide Web): 1994년, 웹브라우저
    • VAN(Valued Added Network): 부가가치 통신망, 공중 사업자로부터 회선을 대여
    • 인트라넷(내부망)과 익스트라넷(외부망): 방화벽 안과 밖으로 구별, 보안 문제
  • 초고속 인터넷 서비스
    • 모뎀
    • ADSL/VDSL, 케이블 모뎀
    • 광케이블
    • 1990년대 후반: 선진국들이 인터넷 속도를 획기적으로 증가
    • 정보의 슈퍼 하이웨이

ICT 기술의 발전 방향

  • ICT 기술은 마이크로프로세서와 주기억장치 RAM, 그리고 광섬유의 대역폭에 의해 통신 속도, 처리 성능이 향상됨
  • 무어의 법칙
    • 인텔사의 창업자
    • 마이크로프로세서의 성능은 18개월마다 2배씩 증가, 가격은 매년 2분의 1씩 감소
    • 주기억장치인 RAM 메모리의 용량도 10년 사이에 100배 증가
    • 특히, 플래시메모리 용량은 최근 매년 2배씩 증가 >> 황의 법칙
  • 길더의 법칙
    • 광섬유의 대역폭 즉, 이터 전송속도는 12개월에 3배씩 빨라짐
    • 초고속 통신망에 의한 인간 생활 사이클 변혁(재택 근무)
  • 멧칼프의 법칙
    • 3COM 창시자, 이더넷 프로토콜 개발
    • 네트워크의 가치사용자 수의 제곱에 비례하지만 비용은 일정
    • 인터넷을 통한 데이터량은 100일마다 2배 증가
    • 통신의 부가가치 창출 속도가 엄청남
    • 단품 서비스에서 토탈 솔루션 서비스로
    • 제품 판매 후 유지 보수형 서비스 증대
    • 멀티미디어 융복합 제품 증대
  • 코스의 법칙
    • 거래 비용 감소에 따라 기업 내 조직의 복잡성, 기업 수 감소
    • 정보 처리 비용의 감소로 다운 사이징 등의 기업 개편 가속화 >> 새로운 전략 필요
    • 아웃소싱, 외주
  • 컴퓨터 기술 발전
    • 마이크로프로세서 칩은 4비트부터 시작하여 현재는 64비트까지 발전
    • 마이크로 컨트롤러, DSP(Digital Signal Processor), GPU(Graphical Processing Unit)과 같은 특수목적 마이크로프로세서
    • 주기억장치로 이용되는 DRAM 메모리 용량도 크게 증가
    • 휴대용 메모리로 USB 플래시 메모리의 사용 일반화
    • 새로운 컴퓨터 구조를 통해 컴퓨터 성능과 처리 속도 향상
    • 병렬 컴퓨팅: 명령문이 동시에 복수의 프로세서에 의해 처리되는 방식 >> 양자 컴퓨팅, 큐 비트
  • 정보 통신과 인터넷 기술의 발전
    • 초고속 인터넷에서 FTTH(Fiber to the Home)으로 발전
    • FTTH는 광섬유를 이용한 인터넷망이 가정에까지 연결된 경우 >> 데이터 전송 속도: 100M비트/초~1G비트/초
    • 모바일 컴퓨팅 활성화 >> 무선 인터넷 서비스 중요
    • 과거의 e-커머스가 모바일 커머스로 발전
    • 디지털 TV 보급 + 초고속 인터넷 인프라 = IPTV 서비스
    • 초고속 인터넷 + TV 서비스 + 전화 >> 상호작용성
    • 하드웨어, 소프트웨어 < 디지털 콘텐츠
    • ICT 기술 활용 방식, 고객 요구 이해, 새로운 활용 제시가 중요
  • 모바일 혁명
    • 이동 중에 언제 어디서나 원하는 정보 주고 받는 것이 가능
    • 지식 정보 사회에서 경쟁력 획득
    • 빌게이츠가 언급
    • 유무선망, 위성통신망, 방송망 통합 >> 광대역 통합망(BcN: Broadband Convergence Network)
    • 위치기반 서비스(LBS: Local Based Service): GPS, 네비게이션, ITS(지능형 교통 시스템)
  • 디지털 컨버전스(Digital Convergence)
    • 컴퓨터와 IT 기술이 다른 첨단 기술인 BT(Bio), NT(Nano) 등과 융합
    • 전통 산업과 융합 >> 경쟁력 제공
    • 방송과 통신 간 경계선 없어짐
    • 디지털 라이프: 가정 생활과 일상에 적용(홈네트워킹, 유비쿼터스 헬스)
    • 가상현실 기술 발전 >> 새로운 가상 세계 생성
    • 디지로그: 디지털 + 아날로그
profile
There's Only One Thing To Do: Learn All We Can

0개의 댓글