JANGUN


컴퓨터 구조


지음 : 김형근, 손진곤



목차

제1장 컴퓨터 구조의 개요
제2장 컴퓨터 명령어
제3장 처리장치
제4장 제어장치
제5장 중앙처리장치
제6장 기억장치
제7장 입출력 시스템
제8장 병렬처리 시스템


제1장 컴퓨터 구조의 개요

1. 컴퓨터는 전자식 데이터 처리 시스템 (EDPS: Electric Data Processing System)으로, '전자식'이란 용어는 컴퓨터를 주판이나 기계식 계산기와 구분하고, '데이터 처리'란 컴퓨터가 다양한 형태의 데이터를 처리한다는 것을 의미한다.
2. 제1세대 컴퓨터는 기계식 컴퓨터의 단점을 보완하기 위해 만들어진 진공관을 이용한 전자식 컴퓨터로서 기계어와 어셈블리어가 사용되었다.
3. 제2세대 컴퓨터는 제1세대 컴퓨터의 단점을 보완하기 위해 진공관 대신 트랜지스터와 고급 프로그래밍 언어닌 ALGOL, FORTRAN, COBOL 등을 사용하게 되었다.
4. 제3세대 컴퓨터는 기술적으로 트랜지스터를 대체할 집적회로를 사용한다는 특징이 있고, 주기억장치에도 자기코어 기억장치 대신 반도체 기억장치를 사용한다는 특징이 있다.
5. 제4세대 컴퓨터는 여러 개의 집적회로를 하나의 패키지에 집적한 대규모 집적회로(LSI)를 사용함으로써 크기와 가격, 수행속도, 기억용량 면에서 제3세대 컴퓨터에 비해 매우 혁신적이다.
6. 차세대 컴퓨터의 형태로는 대규모 병렬처리 컴퓨터, 광 컴퓨터, 신경망 컴퓨터 등이 있다.
7. 컴퓨터 시스템은 입력장치, 출력장치, 기억장치, 중앙처리장치 그리고 시스템 버스로 구성되어 있다.
8. 컴퓨터는 처리성능과 규모에 따라 마이크로 컴퓨터, 미니컴퓨터, 메인프레임 컴퓨터, 슈퍼컴퓨터로 분류되며, 구조에 따라 파이프라인 슈퍼컴퓨터, 대규모 병렬처리 컴퓨터로 분류된다.



제2장 컴퓨터 명령어

1. 컴퓨터 명령어는 연산코드(operation code)와 오퍼랜드로 구성된다.
2. 컴퓨터의 명령어 집합은 그 컴퓨터에서 사용할 수 있는 명령어의 집합을 의미하며, 그 컴퓨터의 구조적인 특성을 나타내는 가장 중요한 정보이다.
3. 컴퓨터 명령어는 컴퓨터의 내부고조에 따라 여러 가지 형식으로 표현된다.
4. 명령어 형식은 오퍼랜드를 기억시켜 놓는 장소에 따라 누산기를 이용하는 경우와 다중 레지스터를 이용하는 경우 그리고 스택 구조를 이용하는 경우로 분류된다.
5. 명령어 형식은 오퍼랜드의 수에 따라 3-주소, 2-주소, 1-주소, 0-주소 명령어로 구분된다.
6. 명령어 형식에서 오퍼랜드의 수가 많아지면 명령어가 복잡해지지만, 연산 속도가 빨라지고 프로그램당 명령어의 수가 감소한다.
7. 명령어 형식에서 오퍼랜드의 수가 적어지면 명령어가 간단해지고 실행속도가 높아지지만 프로그램의 길이는 길어진다.
8. 주소지정방식이란 오퍼랜드를 실제로 참조하기 전에 명령어의 오퍼랜드를 변경하거나 해석하는 규칙을 정의하는 형식이다
9. 컴퓨터 명령어의 주소지정방식에는 즉치주소, 직접주소, 간접주소, 레지스터 주소, 레지스터 간접주소, 상대주소, 인덱스된 주소지정방식이 있다.
10. 컴퓨터 명령어는 데이터 전송 명령어, 데이터 처리 명령어, 프로그램 제어 명령어로 나누어진다.



제3장 처리장치

1. 중앙처리 장치는 처리장치와 제어장치로 구성되어 있다.
처리장치는 데이터를 처리하는 연산을 실행하는 것으로 산술/논리연산장치(ALU)와 레지스터 세트로 구성되어 있고, 제어장치는 연산의 실행순서를 결정하는 역할을 한다.
2. 산술/논리연산장치는 산술연산, 논리연산, 비트연산, 수의 대소 판단 등의 연산을 처리하는 기능을 하고, 레지스터는 연산에 사용되는 데이터를 저장하거나 연산의 결과를 저장하는 데 사용된다.
3. 마이크로연산은 레지스터에 저장되어 있는 데이터에 대해 실행하는 기본적인 연산으로 레지스터 전송 마이크로연산, 산술 마이크로연산, 논리 마이크로연산, 시프트 마이크로연산으로 나누어진다.
4. 처리장치는 여러 개의 레지스터, ALU, 그리고 내부버스로 구성된다.
5. 내부버스란 레지스터 간의 연결통로, 데이터 전송을 위한 공통선로의 집합이다. 내부버스를 구성하는 방법은 멀티플렉서와 디코더를 이용한다.
6. ALU는 산술연산과 논리연산을 실해하는 조합논리회로로, 산술연산회로와 논리연산회로로 구성된다.
7. 제어단어는 처리장치 내에서 수행되는 마이크로연산을 제어하기 위해 구성요소의 선택신호를 묶어 놓은 것으로, 여러 개의 필드로 구성될 수 있다.
8. 제어단어의 각 필드는 마이크로연산을 위한 출발 레지스터의 선택, ALU에서의 연산 선택, 시프터에서의 동작 선택, 결과가 저장될 도착 레지스터의 선택 등으로 구성된다.
9. 제어단어를 생성시키는 가장 효과적인 방법은 제어단어를 기억장치에 저장하고, 기억장치의 출력을 처리장치의 각 구성요소의 선택신호로 연결하는 방법이다.



제4장 제어장치

1. 제어장치는 주기억장치에 기억된 명령어를 하나씩 읽어 내어 해독한 후 해당되는 회로가 동작할 지시신호를 보내 모든 장치가 유기적으로 동작할 수 있도록 한다.
2. 제어장치의 구조는 명령어 레지스터, 명령어 해독기, 주소처리기, 순서제어기로 구성되어 있다.
3. 제어장치는 마이크로프로그램에 의한 제어방식과 하드웨어에 의한 제어방식으로 구현될 수 있다.
4. 하드웨어에 의한 제어구조는 순서회로로 구성되기 때문에 고속 동작이 가능하지만, 한번 만들어진 회로의 동작방법이 바뀌면 회로를 변경할 수 없으며 다시 설계해야 하는 단점이 있다.
5. 마이크로프로그램에 의한 제어구조는 프로그램에 의한 제어방식으로, 제어신호를 수정하고자 할 때는 기억장치의 프로그램을 바꾸기만 하면 되므로 융통성이 뛰어나다.
6. 마이크로프로그램에 의한 제어구조에서 제어기억장치에는 마이크로명령어가 저장되어 있으며, 저장된 마이크로명령어는 하나 또는 다수의 마이크로 연산을 나타내는 제어단어를 포함하고 있다.
7. 마이크로명령어는 하나 혹은 다수의 마이크로연산을 나타내며, 순차적인 마이크로명령어의 집합은 마이크로프로그램을 구성한다.
8. 제어주소 레지스터(CAR)는 마이크로명령어의 주소를 지정하고, 제어 데이터 레지스터(CDR)는 처리장치와 제어장치가 현재 실행하고 있는 마이크로명령어를 저장한다.
9. 하드웨어에 의한 제어장치는 상태 플립플롭을 이용한 제어방식과 순차 레지스터와 디코더를 이요한 제어방식으로 구현한다.



제5장 중앙처리장치

1. 중앙처리장치(CPU: Central Processing Unit)는 컴퓨터에서 명령어를 수행하고 데이터를 처리하는 장치로서 컴퓨터 시스템에서 프로그램이 수행되는 전반적인 과정을 제어한다.
2. CPU는 처리장치와 제어장치로 구성되며, 처리장치는 하나의 산술/논리연산장치, 많은 내부 레지스터, 레지스터와 산술/논리연산장치 사이에 데이터를 전송하기 위한 내부버스로 구성되어 있다.
그리고 제어장치는 명령어 해독기, 명령어 레지스터, 타이밍 회로 그리고 제어논리로 구성되어 있다.
3. 레지스터 세트는 CPU 내부의 레지스터의 집합을 말한다. 레지스터는 데이터를 임시로 보관할 수 있는 저장장소로서, 컴퓨터의 기억장치 중에서 액세스 속도가 가장 빠르다. 레지스터에는 범용 레지스터와 특수 레지스터가 있다.
4. CPU의 내부버스는 ALU와 레지스터 간의 데이터 전송을 위한 데이터버스와 제어장치로부터 발생하는 제어신호를 위한 버스로 구성된다. 이 내부버스는 외부의 시스템버스와 직접 연결되지 않으며, 반드시 버퍼 레지스터 혹은 시스템 버스 인터페이스 회로를 통해 시스템버서와 연결된다.
5. 범용 레지스터는 CPU 내부에 있는 소규모의 일시적인 기억장치로 프로그램 진행 도중 가까운 시간 내에 사용할 데이터나 연산결과를 일시적으로 기억시키는 데 사용한다.
6. 특수 레지스터는 CPU 내의 특수한 동작을 전담하는 역할을 하는 것으로 프로그램 카운터(PC), 명령어 레지스터(IR), 누산기(AC), 기억장치주소 레지스터(MAR), 기억장치 버퍼 레지스터(MBR), 스택 포인터(SP) 등이 있다.
7. 명령어 싸이클(instruction cycle)은 CPU에서 하나의 명령어가 수행되는 데 필요한 전체 수행과정을 말하며, 인출 사이클, 간접 사이클, 실행 사이클, 인터럽트 사이클로 나누어진다.
8. 명령어 사이클에서 인출 사이클은 기억장치에 기억되어 있는 명령어를 인출하는 과정이며, 간접 사이클은 간접주소지정방ㅅㄱ을 사용하는 명령어에서 오퍼랜드 부분의 유효주소를 결정하는 과정이다.
명령어 실행 사이클은 명령어를 실행하는 단계로서 명령어 레지스터에 실린 명령어를 해독하고, 해독한 명령어에 따라 필요한 연산이 수행되는 과정이다.
인터럽트 사이클은 CPU가 현재 처리 중인 프로그램 루틴을 중단시키고 다른 동작을 수행하도록 하는 과정이다.
9. 파이프라이닝은 어떤 일을 실행하는 데 하나의 일을 여러 단계로 나누어, 중첩되게 실행해 성능을 높이는 방법으로서, 명령어 파이프라이닝은 CPU의 내부 하드웨어를 여러 단계로 나누어 처리하는 기술을 말한다.
10. 명령어 파이프라이닝을 수행 단계별로 나누면 2단계, 4단계, 6단계 명령어 파이프라인이 있다.
11. 2단계 파이프라인은 명령어를 실행하는 하드웨어를 인출 단계와 실행 단계라는 2개의 독립적인 파이프라인 모듈로 분리해서 수행하는 방법이다.
12. 명령어 수행 단계를 4단계로 나누어 수행하는 구조를 4단계 파이프라인이라고 한다. 4단계 파이프라이닝 단계는 명령어 인출, 명령어 해독, 오퍼랜드 인출, 명령어 실행 단계가 존재한다.
13. 6단계 명령어 파이프라인은 명령어가 여섯 단계로 구분된다. 명령어를 인출하는 FI(Fetch Instruction) 단계, 명령어를 해독하는 DI (Decode Instruction) 단계, 오퍼랜드를 계산하는 CO(Calculate Operand) 단계, 오펀래드를 인출하는 FO (Fetch Operand) 단계, 명령어를 실행하는 EI(Execute Instruction) 단계, 연산된 결과 오퍼랜드를 저장하는 WO(Write Operand) 단계이다.
14. CISC 방식은 연산에 처리되는 복잡한 명령어를 수백 개 이상 탑재하고 있는 마이크로 처리기이다. 하지만 CISC는 명령어 개수의 증가에 따라 처리기 내부구조가 매우 복잡하고 고속으로 작동되는 처리기를 만들기가 힘들어 속도 향상에 한계가 있다.
15. RISC는 CISC의 복잡한 명령어를 단순화하여 명령어 수를 줄이고 하드웨어를 간단하게 개선한 마이크로 처리기로서 처리속도의 향상을 도모할 수 있다.




제6장 기억장치

1. 기억장치는 지역성이라는 특성을 가지는데, 어떤 내용이 한 번 참조되면 곧바로 다시 참조되기 쉬운 특성을 시간적 지역성이라고 하고, 어떤 내용이 참조되면 그 내용에 가까운 곳에 있는 다른 내용이 곧바로 참조되기 쉬운 특성을 공간적 지역성이라고 한다.
2. 기억장치는 지역성의 원리를 이용하여 계층으로 구성된다. 그 계층의 순서는 레지스터, 캐시기억장치, 주기억장치, 보조기억장치 순인데, 위로 올라갈수록 접근시간은 감소하고, 속도는 증가하며, 비용이 비싸지고, 용량은 적어진다.
3. 기억장치의 성능은 기억용량(capacity), 접근시간(access time), 사이클 시간(cycle time), 기억장치 대역포(bandwidth), 가격(cost)의 요인에 따라 결정된다.
4. 주기억장치는 실행될 프로그램과 데이터를 기억하며, 여기에 기억된 명령은 한 번에 하나씩 제어장치에 의해 가져와서 해독된 후 신호로 바뀌어 각 장치로 전달되며, 주기억장치와 중앙처리장치 사이에서 데이터의 이동을 위해 연결된 선들을 버스라고 한다.
5. 캐시기억장치는 중앙처리장치가 주기억장치에서 필요한 데이터를 가져와야 할 때 미리 캐시기억장치에 그 내용을 저장해 두고 중앙처리장치가 주기억장치에 접근하는 대신 캐시기억장치에서 데이터를 가져오게 함으로써, 중앙처리장치와 주기억장치 간의 속도 차이 개선을 목적으로 한다.
6. 캐시기억장치의 매핑 방식에는 중앙처리장치 주소를 index 필드와 tag 필드로 나누고 캐시기억장치에서 이 두 필드가 모두 같은 데이터를 가져오는 직접사상 방식과 주기억장치의 주소와 데이터를 쌍으로 함께 캐시기억장치에 저장하는 연관사상 방식 그리고 하나의 index에 2개 이상의 데이터를 저장해 집합을 만드는 집합-연관사상 방식이 있다.
7. 연관기억장치는 기억장치에 저장된 데이터에 접근하기 위하여 주소를 사용하지 않고, 내용으로 접근하는 기억장치로서 내용주소화 기억장치라고도 불린다.
8. 가상기억장치의 목적은 주기억장치의 기억용량이 부족한 점을 개선하기 위하여 비트당 가격과 기억용량이 보조기억장치와 같으며, 속도가 주기억장치와 같은 기억장치를 제공받는 것이다.
9. 가상기억장치의 매핑 방식에는 가상기억공간의 프로그램 블록과 실제기억 공간의 프로그램 블록의 크기가 같고, 각 블록의 크기도 모두 동일하게 나누는 페이징 기법과 프로그램의 논리적인 구조에 따라 페이지의 크기를 다양하게 나누는 세그먼트 기법이 있다.
10. 보조기억장치는 기억장치계층 구조상에서 하위수준에 있으며, 보조기억장치의 접근시간, 접근방법 및 데이터의 저장매체에 따라서 자기디스크, 자기테이프와 같은 자기매체와 컴팩트디스크와 같은 광기억장치로 구분된다.
11. CD-ROM으로부터 데이터를 읽어들이는 방법에는 안쪽 트랙과 바깥쪽 트랙의 데이터 기록밀도가 같은 등선속도 방식과 안쪽 트랙이 바깥쪽 트랙보다 기록밀도가 높은 등각속도 방식이 있다.
12. RAID(Redundant Array of Inexpensive Disks)는 크기가 작고 저가인 여러 개의 하드디스크를 묶어 하나의 기억장치처럼 사용하는 시스템으로서 0~6레벨까지 다양한 종류가 있다.



제7장 입출력 시스템

1. 입출력 시스템은 입출력장치와 입출력장치 제어기, 입출력장치 인터페이스, 입출력버스, 입출력 제어기로 구성되어 있다.
2. 입출력장치에는 키보드, CRT, LCD와 같은 저속장치와 프린터와 같은 중속장치 그리고 고속장치에 속하는 디스크, 고속 프린터 등이 있다.
3. 입출력 인터페이스는 중앙처리장치나 주기억장치와 같은 컴퓨터 내부장치와 데이터의 입력과 출력을 담당하는 컴퓨터 외부장치에 해당하는 입출력 장치와의 올바른 정보 전송을 위한 방법을 제공한다.
4. 입출력 제어기는 주기억장치와 입출력장치 사이에 데이터 전달이 이루어지게 하는 제어기로서, 중앙처리장치가 입출력 명령어를 수행할 때 그 명령어를 직접 사용하는 제어기이며 중앙처리장치, DMA 제어기 혹은 채널 제어기 등이 있다.
5. 입출력장치 제어기는 입출력장치의 하드웨어 기능을 제어하는 목적으로 사용된다.
6. 입출력버스는 입출력에만 이용되는 버스로서 기능별로 데이터버스, 주소버스, 제어버스의 세 가지로 구성되어 있는데, 입출력버스의 한쪽에는 입출력장치 인터페이스가 연결되어 있고, 다른 한쪽에는 입출력제어기가 연결되어 있다.
7. 버스 중재방식의 종류로는 중앙집중식 병렬중재(centralized parallel arbitration), 직렬중재 혹은 데이지 체인중재, 폴링에 의한 중재가 있다.
8. 중앙처리장치와 입출력장치 간의 비동기적인 데이터 전송을 위한 제어신호 교환방법에는 스트로브 제어방식과 핸드셰이킹 방식이 있다.
9. 입출력을 제어하는 방식은 중앙처리장치에 의한 방식, 중앙처리장치의 관여 없이 직접 주기억장치에 접근하여 입출력을 하는 방식(DMA), 채널에 의한 방식으로 나눌 수 있다.



제8장 병렬처리 시스템

1. 컴퓨터에서의 병렬처리란 하나 이상의 연산을 동시에 수행하여 연산속도를 증가시키는 처리방법이고, 병렬처리기란 이러한 병렬처리 기법을 구현한 컴퓨터 구조를 말한다.
2. 컴퓨터 성능의 표준척도로서는 MIPS와 MFLOPS가 있으며, MIPS는 특정 기계의 명령어 실행속도에 관한 척도이고, MFLOPS는 프로그램상의 연산에 기초를 둔 것이다.
3. 병렬처리 시스템의 대표적인 분류방법으로는 플린의 분류, 펭의 분류, 구조에 의한 분류가 있다.
4. 플린은 컴퓨터 구조를 명령어 스트림과 데이터 스트림이 컴퓨터 내에 각각 하나뿐인가 혹은 여러 개인가를 기준으로, SISD, SIMD, MISD, MIMD로 분류하였다.
5. 펭은 컴퓨터 구조를 병렬수행 정도에 따라 '단어별 순차, 비트별 순차 처리', '단어별 병렬, 비트별 순차 처리', '단어별 순차, 비트별 병렬 처리', '단어별 병렬, 비트별 병렬 처리'로 구분하였다.
6. 병렬처리기의 종류에는 파이프라인 처리기, 배열처리기, 다중처리기, 데이터 흐름 컴퓨터, VLSI 처리기가 있다.
7. 파이프라인 처리기는 프로그램 내에 내재하는 시간적 병렬성을 활용하기 위하여 프로그램 수행에 필요한 작업을 시간적으로 중첩하여 수행시키는 처리기를 의미한다.
8. 벼열처리기는 한 컴퓨터 내에 여러 개의 처리장치(PE: Processing Element)를 배열 형태로 가지고 있는 것을 말한다.
9. 다중처리기는 시스템상의 여러 처리기에 여러 개의 독립적인 작업을 각각 배정하여 2개 이상의 처리기를 동시에 수행할 수 있도록 기능을 갖춘 컴퓨터 시스템을 말한다.
10. 데이터 흐름 컴퓨터는 프로그램 내의 모든 명령어를 그들의 수행에 필요한 피연산자들이 모두 준비되었을 때 프로그램에 나타나는 명령어 순서와 무관하게 수행시키는 것이다. 이러한 방식의 명령어 수행을 데이터 추진 방식이라고도 한다.
11. VLSI 처리기란 병렬 알고리즘을 직접 하드웨어로 구현하는 새로운 처리기 구조이다.
12. 상호연결망은 여러 개의 처리요소를 가진 병렬처리 시스템에서 처리요소와 기억장치 사이를 연결하여 주는 네트워크를 말한다.