의기본구조 개요 1 2 의구성요소 컴퓨터하드웨어의주요구성요소 1. 하드웨어 물리적인컴퓨팅자원 (ex) CPU, 메모리, 입출력장치 2. 운영체제 응용프로그램들의하드웨어사용을제어하고조정하고, 사용자 들에게컴퓨터사용을위한인터페이스를제공함 (ex) UNIX, Linux, Windows XP, Mac OS 3. 응용프로그램 사용자들의문제를해결하기위한프로그램 ( 소프트웨어 ) (ex) 워드프로세서, 컴파일러, 웹브라우저, 데이터베이스시스템, 게임, 스프레드시트 ( 엑셀 ) 4. 사용자 사람, 기계, 다른컴퓨터 3 4
컴퓨터의기본구조 컴퓨터의주요구성요소들 (1) 기본구조 중앙처리장치 (Central Processing Unit: CPU) 프로세서 (processor) 라고도함 ' 프로그램실행 ' 과 ' 데이터처리 ' 라는중추적기능의수행을담당 기본기능 : 프로그램코드를정해진순서대로실행하는것 필요한데이터를읽어서 (read), 처리 (processing) 하고, 저장 (store) 한다. 기억장치 (memory) (1) 주기억장치 (main memory) CPU 가까이위치하며, 반도체기억장치칩들로구성 고속액세스 가격이높고면적을많이차지 저장용량의한계 영구저장능력이없기때문에, 일시적저장장치로만사용 ( 휘발성메모리 ) 5 6 컴퓨터의주요구성요소들 (2) 정보의표현과저장 (2) 보조저장장치 (auxiliary storage device) 2차기억장치 (secondary memory) 기계적인장치가포함되기때문에저속액세스 저장밀도가높고, 비트당비용이저가 영구저장능력을가진저장장치 : 디스크, 자기테이프등 입출력장치 (I/O device) 입력장치 (input device), 출력장치 (output device) 각장치와 CPU간의데이터이동을위한별도의제어기가있음 사용자와컴퓨터간의대화를위한도구 컴퓨터정보 : 2 진수비트 (1 과 0) 들로표현된프로그램코드와데이터 프로그램코드 기계어 (machine language) 컴퓨터하드웨어부품들 ( 주로 CPU) 이이해할수있는언어로 서, 2진비트들로구성 어셈블리언어 (assembly language) 고급언어와기계어사이의중간언어, 저급언어 (low-level l l language), 기계어와 11 1:1 대응 기계어코드를사람이이해할수있는심볼로나타내어사용 고급언어 (high-level language) 영문자와숫자로구성되는사람이이해하기쉬운언어 C, C++, Java, PASCAL, FORTRAN, COBOL 등 7 8
프로그램언어의변환과정 [ 예 ] Z = X + Y LOAD A, X : 기억장치 X번지의내용을읽어레지스터 A에적재 (load) (A M[X]) ADD A, Y : 기억장치 Y 번지내용을읽어레지스터 A 에적재된값과더하고, 결과를다시 A에적재 (A A + M[Y]) STOR Z, A : 그값을기억장치 Z 번지에저장 (store) (M[Z] A) 프로그램언어번역소프트웨어 컴파일러 (compiler) 고급언어프로그램을기계어프로그램으로번역하는소프트웨어 어셈블러 (assembler) 어셈블리프로그램을기계어프로그램으로번역하는소프트웨어 니모닉스 (mnemonics) 어셈블리명령어가지정하는동작을개략적으로짐작할수있도록하기위하여사용된기호 (ex) LOAD, ADD, STOR 등 9 10 기계명령어의형식 프로그램코드와데이터의기억장치저장 기계명령어 (machine instruction) 형식 연산코드 (op code) CPU 가수행할연산을지정해주는비트들 비트수 = 3 이면, 지정할수있는연산의최대수는 2 3 = 8 오퍼랜드 (operand) 적재 / 저장되거나연산에사용될데이터가저장된기억장치주소 비트수 =5 라면, 주소지정 (addressing) 할수있는기억장소의최대수는 2 5 = 32 개 워드 (word) 각기억장소에저장되는데이터의기본단위로서, CPU에의해한번에처리될수있는비트들의그룹 [ 예 ] 8-비트, 16-비트, 32-비트, 혹은 64-비트워드 바이트 (byte) 8- 비트 11 12
의구성 구성예 (1) - 예전 I/O 장치마다별도의제어기사용 13 14 구성예 (2) - 최근 시스템버스 (1) 시스템버스 (system bus) CPU 와시스템내의다른요소들사이에정보를교환하는통로 기본구성 주소버스 (address bus) 데이터버스 (data bus) 제어버스 (control bus) 여러 I/O 장치를연결할수있는공용제어기사용 주소버스 (address bus) CPU 가외부로발생하는주소정보를전송하는신호선들의집합 주소선의수는 CPU 와접속될수있는최대기억장치용량을결정 [ 예 ] 주소버스의비트수 = 16 비트라면, 최대 2 16 = 64K 개의기억장소들의주소지정가능 15 16
시스템버스 (2) 데이터버스 (data bus) CPU가기억장치혹은 I/O 장치와의사이에데이터를전송하기위한신호선들의집합 데이터선의수는 CPU 가한번에전송할수있는비트수결정 [ 예 ] 데이터버스폭 = 32 비트라면, CPU와기억장치간의데이터전송이한번에 32 비트씩가능 CPU 와시스템버스간의접속 주소버스 : 단방향성 (uni-directional) 주소는 CPU로부터기억장치혹은 I/O 장치들로보내지는정보 데이터버스 : 양방향성 (bi-directional) 읽기와쓰기동작을모두지원 제어버스 (control bus): CPU 가시스템내의각종요소들의동작을제어하기위한신호선들의집합 [ 예 ] 기억장치읽기 / 쓰기 (Memory Read/Write) 신호 I/O 읽기 / 쓰기 (I/O Read/Write) 신호 17 18 CPU 와기억장치간의접속 기억장치쓰기 필요한버스및제어신호 주소버스 데이터버스 제어신호 : 기억장치읽기 (memory read) 신호, 기억장치쓰기 (memory write) 신호 기억장치쓰기동작 : CPU가데이터를저장할기억장소의주소와저장할데이터를각각주소버스와데이터버스를통하여보내면서동시에쓰기신호를활성화 기억장치쓰기시간 (memory write time) : CPU가주소와데이터를보낸순간부터저장이완료될때까지의시간 19 20
기억장치읽기 기억장치읽기동작 CPU가기억장치주소를주소버스를통하여보내면서읽기신호를활성화 일정지연시간이경과한후에기억장치로부터읽혀진데이터가데이터버스상에실리며, CPU는그데이터를버스인터페이스 회로를통하여읽음 기억장치읽기시간 (memory read time) : 주소를해독 (decode) 하는데걸리는시간과선택된기억소자들로부터데이터를읽는데걸리는시간을합한시간 CPU 와 I/O 장치의접속 필요한버스및제어신호 주소버스 데이터버스 제어신호 : I/O 읽기 (I/O read) 신호, I/O 쓰기 (I/O write) 신호 접속경로 : CPU - 시스템버스 I/O 장치제어기 I/O 장치 21 22 I/O 장치접속예 : CPU 키보드 & 프린터 I/O 장치제어기 (I/O device controller) 기능 : CPU로부터 I/O 명령을받아서, 해당 I/O 장치를제어하고, 데이터를이동함으로써명령을수행하는전자회로장치 ( 예 ) 키보드제어기, 프린터제어기등 상태레지스터 I/O 장치의현재상태를나타내는비트들을저장한레지스터 준비상태 (RDY) 비트, 데이터전송확인 (ACK) 비트, 등 데이터레지스터 CPU 와 I/O 장치간에이동되는데이터를일시적으로저장하는레지스터 23 24
키보드데이터입력과정 프린터데이터출력과정 키보드제어기 : 키보드의어떤한키 (key) 를누르면, 그키에대응되는 ASCII 코드가키보드제어기의데이터레지스터에저장되고, 동시에상태레지스터의 In_RDY 비트가 1로세트 CPU : 1. 키보드제어기로부터상태레지스터의내용을읽어서 In_RDY 비트가세트되었는지검사 (In_RDY 비트는데이터레 지스터에외부로부터데이터가적재되었는지를표시 ) 2. 만약세트되지않았으면, 1번을반복하 며대기. / 만약세트되었다면, 데이터레지스터의내용을읽음 CPU : 1. 프린터제어기의상태레지스터의내용을읽어서 Out_RDY 비트검사 (Out_RDY 비트 : 프린터가출력할준비가되었는지를표시 ) 2. 만약세트되지않았으면, 1 번을반복하며대기만약세트되었다면, 프린트할데이터를프린터제어기의데이터 레지스터에저장 프린터제어기 : 데이터레지스터의내용을프린터로보내고, 프린터의하드웨어를제어하면서인쇄동작수행 25 26 CPU 와보조저장장치의접속 컴퓨터의기본적인기능들 보조저장장치들 ( 디스크, 플로피디스켓, CD-ROM 등 ) 도각장치를위한제어기를통하여키보드나프린터와유사한방법으로접속 차이점 : 데이터전송단위 키보드, 프린터 : 바이트 (8 비트 ) 단위로전송 보조저장장치 : 블록 (512/1024/4096 바이트 ) 단위로전송 제어기내에한블록이상을임시저장할수있는데이터버퍼필요 트랙버퍼 (track buffer): 하드디스크상의한트랙내용을모두저장할수있는디스크제어기내의데이터버퍼 프로그램실행 : CPU 가주기억장치로부터프로그램코드를읽어서실행 데이터저장 : 프로그램실행결과로서얻어진데이터를주기억장치에저장 데이터이동 : 디스크혹은 CD-ROM 에저장되어있는프로그램과데이터블록을기억장치로이동 데이터입력 / 출력 : 사용자가키보드를통하여보내는명령이나데이터를읽어들인다. 또한 CPU가처리한결과값이나기억장치의내용을프린터 ( 혹은모니터 ) 로출력 제어 : 프로그램이순서대로실행되도록또는필요에따라실행순서를변경하도록조정하며, 각종제어신호들을발생 27 28
컴퓨터구조의발전과정 주요부품들의발전과정 릴레이 (relay) 진공관 트랜지스터 반도체집적회로 (IC) 발전과정에서의개선점들 처리속도향상 저장용량증가 크기감소 가격하락 신뢰도향상 초기컴퓨터들의근본적인설계개념과동작원리가현대의컴퓨터들과거의같음 최초의컴퓨터 1642년, Blaise Pascal( 프랑스 ) 덧셈과뺄셈을수행하는기계적카운터 다이얼의위치에의하여십진수를표시하는 6개의원형판세트들로구성 각원형판은일시적으로숫자를기억하는레지스터로사용 29 30 Leibniz 의기계 Difference Engine 1671년, Gottfried Leibniz( 독일 ) 덧셈과뺄셈및곱셈과나눗셈도할수있는계산기 Pascal의계산기에두개의원형판들을추가하여반복적방법으로곱셈과나눗셈을수행 이후많은기계들의조상이됨 19 세기초, Charles Babbage( 영국, 현대컴퓨터의할아버지 ) 표에있는수들을자동적으로계산하고, 그결과를금속천공기를거쳐서프린트 덧셈과뺄셈만수행가능 31 32
Analytical Engine 19 세기초, Charles Babbage( 영국 ) 주요특징들 어떤수학연산도자동적으로수행할수있는일반목적용계산기계 프로그래밍가능 : 프로그램언어사용 프로그램의실행순서변경가능 문제점 수의부호검사를이용한조건분기 제어카드를이용한실행순서변경 주요부품들이기계적인장치들이었기때문에속도가느렸고신뢰도가낮음 Analytical Engine 의기본구조 산술연산장치 : CPU 기억장치 : STORE 입력장치 : 카드판독기 출력장치 : 카드천공기, 프린터 33 34 ENIAC IAS 컴퓨터 Electronic Numerical Integrator And Computer 1940 년대초, von Neumann( 폰노이만 ) 이개발 펜실바니아대학에서개발한진공관을사용한최초의전자식컴퓨터 문제점 : 프로그램의저장과변경불가능 폰노이만의설계개념 (Stored-program 개념 ) 발표 2 진수체계 (binary number system) 를사용 프로그램과데이터를내부에저장 EDVAC(Electronic Discrete Variable Computer) 개발을위하여 1945 년에발표 1952년, 폰노이만이개발 'stored-program' 컴퓨터 폰노이만의설계개념 2 진수체계를사용한다 프로그램과데이터를내부에저장한다 주요구성요소 프로그램제어유니트 (Program Control Unit) : 명령어인출 / 해독 산술논리연산장치 (ALU) 주기억장치 : 명령어와데이터를모두저장 입출력장치 35 36
IAS 컴퓨터의구조 의분류와발전동향 폰노이만아키텍처 (von Neumann Architecture): 프로그램코드들을기억장치에저장된순서대로실행하며, 그주소는 CPU의내부레지스터인프로그램카운터 (program counter) 에의하여지정 개인용컴퓨터 중형급 메인프레임컴퓨터 슈퍼컴퓨터 임베디드컴퓨터 37 38 개인용컴퓨터 (PC) 개인용컴퓨터 ( 계속 ) 특징 소형, 저가 성능 : 십여년전의대형메인프레임컴퓨터의성능을능가 주요발전동향 매 2 ~ 3 년마다성능이개선된새로운마이크로프로세서가등장하고, 그에따라새로운 PC 모델출현 주변요소들 ( 캐시, MMU, 산술보조프로세서등 ) 이 CPU 칩에내장됨에따라속도및신뢰도가향상 CPU 구조가다수의 ALU들혹은명령어실행유니트들을포함하는슈퍼스칼라 (superscalar) 구조, 듀얼-코어및쿼드-코어구조로발전 문자이외의다양한정보들에대한입력과출력, 저장및처리능력을보유하게됨에따라멀티미디어 PC로발전 보다더편리한사용자인터페이스를제공해주는시스템소프트웨어들출현 (Windows 95/98/ME/2000/XP/Vista) 고속 I/O 장치들의인터페이스를위한새로운버스규격제안 주기억장치와보조저장장치의용량이크게증가, 종류다양화 39 40
중형급 다중프로세서시스템의구조 워크스테이션 (workstation) CPU : 64- 비트마이크로프로세서사용 고속그래픽처리하드웨어포함 주요응용 :3 차원동영상처리, 시뮬레이션, CAD 등 OS : UNIX, LINUX 슈퍼미니컴퓨터 (Super-minicomputer) p 시스템구조 : 다중프로세서 (multiprocessor) 구조 CPU 의수 : 20 ~ 30 개 성능 : VAX-11 미니컴퓨터성능의수십배이상 OS : UNIX 서버 (server) 급시스템의다운사이징 (downsizing) 주도 네트워크에접속된다수의중형급들을응용 ( 혹은용도 ) 별로구분하여사용하는컴퓨팅환경이가능해지게함 41 42 메인프레임 (mainframe) 컴퓨터 슈퍼컴퓨터 (supercomputer) p IBM 360 및 370 계열, 3081, 3090 등으로계속발전 대용량저장장치보유 다중 I/O 채널을이용한고속 I/O 처리능력보유 대규모데이터베이스저장및관리용으로사용 최근성능과가격면에서슈퍼미니급컴퓨터들과경쟁하고있으며, 점차적으로시장점유율하락중 현존하는컴퓨터들중에서처리속도와기억장치용량이다른컴퓨터들에비하여상대적으로월등한들 분류기준 : 계속적으로상승 최초의슈퍼컴퓨터인 CRAY-1 의속도는 100 MFLOPS 최근의슈퍼컴퓨터들의속도는 TFLOPS 급 주요응용분야들 VLSI 회로설계, 항공우주공학, 천문학 ( 일기예보 ), 구조공학, 유전탐사, 핵공학, 인공지능, 입체영상처리등과같은대규모과학계산및시뮬레이션 구조적특징에따른슈퍼컴퓨터분류 파이프라인슈퍼컴퓨터 (pipeline supercomputer) 대규모병렬컴퓨터 (massively parallel computer: MPP) 클러스터컴퓨터 (Cluster Computer) 43 44
파이프라인 (pipeline) p 슈퍼컴퓨터 파이프라인슈퍼컴퓨터 (pipeline supercomputer) 한 CPU 내에다수의연산장치들이포함 각연산장치는고도의파이프라이닝구조를이용하여고속벡터계산가능 대표적인시스템들 : CRAY Y-MP, CRAY-2, Fujitsu VP2000, VPP500 등 대규모병렬컴퓨터 대규모병렬컴퓨터 (massively parallel computer: MPP) 한시스템내에상호연결된수백혹은수천개이상의프로세서들포함 프로세서들이하나의큰작업을나누어동시에처리하는병렬처리 (parallel processing) 기술이용 시스템사례 : IBM BlueGene/L 슈퍼컴퓨터 2008년 TOP500 리스트최상위랭크 131,072 개의 64- 비트 PowerPC 프로세서들탑재 64 캐비닛 x32 노드 x32 프로세서 64 TByte 기억장치보유 45 46 IBM BlueGene/L 슈퍼컴퓨터의구성도 클러스터컴퓨터 클러스터컴퓨터 (Cluster Computer) 고속 LAN이나네트워크스위치에의해서로연결된 PC들혹은워크스테이션들의집합체 노드 ( 단위컴퓨터 ) 들에포함된모든자원들을단일시스템이미지 (Single System Image: SSI) 로통합 시스템사례 : NOW(Network of Workstations) U.C. 버클리대학전산학과에서개발 105 개의워크스테이션들로구성 47 48
NOW(Network of Workstations) 구성도 임베디드컴퓨터 Embedded Computer ( 내장컴퓨터라고도함 ) 기계장치나전자장치들의내부에포함되어, 그장치들의동작을제어 (control) 하는컴퓨터들 [ 예 ] 가전제품, 컴퓨터주변기기, 이동전화기, 비디오게임기등 8-비트마이크로컨트롤러 (micro-controller) 를이용한초소형부터 32- 비트컴퓨터에이르기까지다양 최소의비용으로, 필요한만큼의성능제공 실시간처리 (real-time processing) 유비쿼터스컴퓨팅설비의중심요소로도사용될전망 49 50