K_blueprint
컴퓨터 구조론 CH.1 내용 정리 본문
< 컴퓨터의 기본 구조 >
● 하드웨어
- 컴퓨터에서 각종 정보의 전송 통로를 제공해주고, 정보에 대한 처리가 실제 일어나게 해주는 물리적인 실체들
● 소프트웨어어
- 정보들이 이동하는 방향과 정보 처리의 종류를 지정해 주고, 그러한 동작들이 수행될 시간을 지정해주는 명령들의 집합
● 컴퓨터의 기능
- 필요한 데이터를 읽어서(read)
- 처리(processing)하고
- 결과를 저장(store)한다.
● CPU(중앙처리장치, 프로세서)
- ‘프로그램의 실행’과 ‘데이터 처리’라는 중추적인 기능의 수행을 담당한다,
- CPU가 한 번에 처리하는 데이터의 길이(비트 수)에 따라 8비트, 32비트, 64비트 컴퓨터로 분류
- 컴퓨터의 이론적인 처리 속도는 CPU의 성능에 의해 결정된다.
- CPU는 기억장치, 입출력장치와 ‘시스템 버스’로 연결되어 있다.
● 기억장치(memory : 저장장치)
(CPU가 처리할 프로그램의 코드와 데이터가 저장되는 장소이며 크게 ‘주기억장치’와 ‘보조기억장치’로 나뉜다.)
- 주기억장치(main memory) : 메인 보드 상에서 CPU와 가까이 위치하며, 반도체 기억장치 칩들로 이루어져 고속의 읽기 및 쓰기가 가능하지만, 가격이 높고 면적을 많이 차지하기 때문에 저장 용량에 한계가 있다. 또한 영구 저장능력이 없기 때문에(휘발성) 프로그램 실행 중에만 일시적으로 사용되는 기억장치
- 보조저장장치(2차 기억장치) : 하드 디스크나 SSD와 같이 영구 저장 능력(비휘발성)을 가진 기억장치들을 말하며, 저장밀도가 높고 비트당 가격이 저렴하지만, 속도가 느리고, CPU가 직접 엑세스(읽기/쓰기)를 하지 못하기 때문에 별도의 제어기가 필요하다.
● 입출력장치(I/O장치, 주변장치)
- 입력장치와 출력 장치를 통칭하는 용어 (ex. 키보드, 디스플레이 모니터, 프린터 등)
- CPU와 직접 데이터를 교환할 수 없으며, 각 장치를 위한 별도의 제어기가 존재함(제어기를 통해 CPU로부터 명령을 받아서 장치의 동작을 제어하고 데이터를 이동시킴
< 정보의 표현과 저장 >
- 컴퓨터가 받아들이고 처리하는 정보의 종류에는 프로그램 코드, 데이터가 있다.(이러한 정보들은 디지털 컴퓨터에서 모두 2진수를 나타내는 비트(bit)들의 조합으로 표현된다.
● 컴파일러
- 컴퓨터 프로그램은 고급언어(C, C++ 등)를 이용하여 작성이 되는데 이러한 프로그램들은 컴퓨터 하드웨어는 이해하지 못하기 때문에 소프트웨어에 의해 하드웨어가 이해할 수 있는 언어로 번역(기계어,기계코드)해주는 역할이 필요하다.
(기계어 : 컴퓨터 하드웨어가 이해할 수 있는 언어, 2진 비트들로 구성(기계어는 CPU마다 서로 다름))
● 어셈블리어, 어셈블리 명령어
- 고급언어와 기계어 사이에 존재하는 각각의 CPU 고유의 중간 언어(이러한 언어로 작성된 프로그램을 ‘어셈블리 프로그램’이라고 하며 이는 기계어와 일대일로 대응된다.)
● 니모닉스
- 명령어가 지정하는 동작을 나타내는 간략화된 기호인 ‘LOAD’, ‘ADD’, ‘STOR’를 의미
● 어셈블러
- 어셈블리 언어로 작성된 프로그램을 기계어 프로그램으로 번역해주는 소프트웨어
● 단어(Word)
- CPU에 의해 한 번에 처리될 수 있는 비트들의 그룹
- 단어의 길이는 CPU의 하드웨어 구조에 따라 8비트, 16비트, 32비트, 64비트 등으로 다양)
- 단어가 크면 클수록 처리 속도가 증가함
< 시스템의 구성 >
● 시스템 버스
- CPU와 다른 요소들 사이에 정보를 교환하는 통로
● 주소버스
- CPU가 외부로 발생하는 주소 정보를 전송하는 신호 선들의 집합
CPU가 발생하는 주소 비트들의 수를 주소 버스의 폭이라고 하는데 만약 그 폭이 16비트라면, 최대 2^16 = 65,536개(64k개)의 기억 장소들의 주소를 지정해 줄 수 있다.
● 데이터 버스
- CPU가 기억장치 혹은 I/O 장치와의 사이에 데이터를 전송하기 위한 신호 선들의 집합
- 양방향의 형태
● 제어버스
- CPU가 시스템 내의 각종 요소들의 동작을 제어하는데 필요한 신호 선들의 집합.
ex) 인터럽트 신호 : CPU가 일을 수행하고 있을 때 예외상황이 발생할 경우 CPU에게 먼저 알려 우선적으로 일을 처리할 수 있도록 하는 것.
주소는 CPU에 의해 발생되어 기억장치와 I/O 장치로 보내지는 정보이기 때문에 주소버스는 단방향 전송/읽기와 쓰기 모두 가능해야 하므로 데이터 버스는 양방향 전송
● 엑세스(access)
- CPU가 데이터를 기억장치의 특정 장소에 저장하거나 이미 저장되어 있는 내용을 읽는 동작
● 기억장치 쓰기 시간
- CPU가 주소와 데이터를 보낸 순간부터 저장이 완료될 때까지의 시간
● 기억장치 읽기 시간
- CPU가 주소를 발생한 시간부터 읽기 동작이 완료될 때까지의 시간
CPU는 데이터가 저장되어 있는 기억 장소의 주소를 주소 버스를 통하여 기억장치로 보내면서 동시에 읽기 신호를 활성화시킨다.(읽기는 데이터 버스가 늦게 출발/쓰기는 거의 같이 출발)
● 지연시간
- 주소를 해독(Decode)하는데 걸리는 시간과 기억장치 내부에서 데이터를 인출하는데 걸리는 시간을 합한 시간.
< CPU와 I/O 장치의 접속>
- 주기억&CPU = ‘직통연결’ 즉 별도의 제어기가 필요없다. (그 외의 외부 장치들은 각각의 제어기를 통해 CPU와 소통)
● 데이터 레지스터
- CPU와 I/O 장치간의 임시 데이터 기억장치
● 상태 레지스터
- I/O 장치의 현재 상태를 나타내는 비트들을 저장하는 레지스터
CPU는 데이터 입력을 원하는 시점에서 먼저 상태 레지스터를 읽어들여서 IN_RDY(입력준비)가 1로 세트되어 있는지를 검사한다.(1 – 데이터 들어옴, 0 – 데이터 없음)
CPU는 데이터를 프린터로 보내기 전에 먼저 프린터 제어기 내의 상태 레지스터를 읽어서, 데이터 출력준비(Out_RDY) 비트를 검사한다.
차이점 : 데이터 전송 단위(키보드 : 바이트 단위 전송/보조저장장치 : 블록 단위로 전송)
< 전체 시스템의 구성 >
● 프로그램(명령어) 실행
- CPU가 주기억장치로부터 프로그램 코드를 읽어서 실행한다.
● 데이터 저장
- 프로그램 실행 결과로서 얻어진 데이터를 주기억장치에 저장한다,
● 데이터 이동
- 디스크나 SSD에 저장되어 있는 프로그램과 데이터 블록을 주기억장치로 이동한다.
● 데이터 입력 및 출력
- 사용자가 키보드를 통하여 보내는 명령이나 데이터를 읽어 들인다. 또한 CPU가 처리한 결과 값이나 기억장치의 내용을 프린터(혹은 모니터)로 출력한다.
● 제어
- 프로그램이 순서대로 실행되도록 혹은 필요에 따라 실행 순서를 변경하도록 조정하며, 각종 제어 신호들을 발생한다.
< 컴퓨터 구조의 발전 과정 >
● 컴퓨터의 세대
- 진공관(1세대) > 트랜지스터(2세대) > 반도체집적회로(IC)(3세대) > 마이크로프로세스-1970(4세대) > 차세대 컴퓨터VLSI(5세대)
현재 컴퓨터의 처리속도가 계속 높아지고 있다(저장용량 증가/크기감소/가격하락/신뢰도 증가 등)
컴퓨터의 근본적인 설계 개념은 크게 바뀌지 않음
● Analytical Engine
- 어떠한 수학 연산도 자동적으로 수행할 수 있는 일반목적용 기계
- 네 가지 산술연산 기능과 입력 및 출력장치를 모두 갖춘 최초의 일반목적용 계산기계
● ENIAC(폰노이만)
- 진공관을 이용한 최초의 전자식 컴퓨터
- 프로그램을 저장하고 변경하는 것이 불가능
● 주요 컴퓨터들의 발전 경위
- 1967년 한국 최초 컴퓨터 수입
- 개인용 컴퓨터(PC) : 소형/저가, 최근 64비트 단위의 데이터 처리 및 기억장치 주소로 사용, 듀얼코어 및 멀티-코어 구조로 발전
- 집적회로 : 실리콘 반도체 칩에 다수의 트랜지스터들을 넣어(집적시켜)제조한 전자부품
● 임베디드 컴퓨터(내장컴퓨터)
- 각종 기계장치나 전자장치들의 내부에 포함되어, 그 장치들의 동작을 제어하는 컴퓨터
- 일반적으로 최소의 비용으로 필요한 만큼의 성능을 가지도록 설계된다.
- 실시간으로 프로그램을 처리해야 하는 경우가 많다.
- 사물 인터넷(IOT) 및 지능형 로봇의 핵심 요소로도 사용되기 때문에 더욱 다양해지고 보급도 확대될 전망이다.
● 서버급 컴퓨터 시스템
- 워크스테이션 : 고속 그래픽 처리 및 시뮬레이션 등에 사용되는 64-비트급 고성능 컴퓨터
- 슈퍼미니컴퓨터 : 미니컴퓨터의 수십 배 성능을 가지는 서버급 컴퓨터시스템, 그러한 성능을 가지기 위하여 한 시스템 에 20개 이상의 프로세서들을 포함하는 다중프로세서 시스템으로 구성되고 있다.
● 다운사이징
- 대형컴퓨터를 이용한 중앙집중식 처리 방식에서 여러 대의 중형급 시스템들을 이용한 응용별 처리 방식으로 바뀌어가는 현상
● 슈퍼컴퓨터
- 현존하는 컴퓨터들 중에서 처리 속도와 저장 용량이 상대적으로 월등한 컴퓨터
- 최근에는 ‘페타플롭스’급의 속도를 가져야 슈퍼컴퓨터로 분류될 수 있다.
- 주요 응용분야 : 항공 우주학, 천문학, 핵공학, 인공지능, 입체영상처리 등
- 종류 : 파이프라인 슈퍼컴퓨터/대규모 병렬처리시스템/클러스터 컴퓨터
● 파이프라인 슈퍼컴퓨터
- 고도로 파이프라이닝 된 구조를 가진 소수의 CPU들을 이용하여 구성되는 슈퍼컴퓨터
● 대규모 병렬 처리시스템
- 매우 많은 수의 프로세서들을 이용하여 병렬처리를 수행하도록 설계되는 구성 방식
● 클러스터 컴퓨터
- 고속 LAN이나 네트워크 스위치에 의해 서로 연결된 독립적인 컴퓨터들의 집합체
'computer architecture' 카테고리의 다른 글
컴퓨터 주기억장치의 종류와 역할 (1) | 2023.11.07 |
---|---|
컴퓨터 구조 과제 (0) | 2023.09.17 |