340 likes | 621 Views
4 장 . 컴퓨터 시스템의 구성과 기능. 다루는 내용 컴퓨터 분해를 통한 본체 살펴보기 컴퓨터 구성요소 컴퓨터의 기능 버스와 상호 연결. Section 01 컴퓨터 분해를 통한 본체 살펴보기. [그림 4-1] 컴퓨터의 분해와 연결. 주 회로기판 (main board) 의 구성. [그림 4-2] 메인보드의 구성. 컴퓨터 구성요소. 컴퓨터의 개념적 구성. [그림 4-3] 컴퓨터의 개념적 구성. 컴퓨터 구성요소. 하드웨어 (hardware)
E N D
4장. 컴퓨터 시스템의 구성과 기능 • 다루는 내용 • 컴퓨터 분해를 통한 본체 살펴보기 • 컴퓨터 구성요소 • 컴퓨터의 기능 • 버스와 상호 연결
Section 01 컴퓨터 분해를 통한 본체 살펴보기 [그림 4-1] 컴퓨터의 분해와 연결
주 회로기판(main board)의 구성 [그림 4-2] 메인보드의 구성
컴퓨터 구성요소 • 컴퓨터의 개념적 구성 [그림 4-3] 컴퓨터의 개념적 구성
컴퓨터 구성요소 • 하드웨어(hardware) • 정보들의 전송 통로를 제공하고, 그 정보에 대한 처리가 실제 일어나게 해주는 물리적인 실체 • 하드와이어 프로그램(hardwired program) • 부품을 연결하여 필요 기능을 수행하는 프로그래밍의 한 형식 • 특정 목적에만 사용, 다른 목적을 위해서 부품의 재연결이 필요 • 컴퓨터 시스템은 융통성이 없다.
컴퓨터 구성요소 • 소프트웨어(software) • 하드웨어가 특정 작업을 수행하도록 제어 신호들을 제공하는 일련의 코드들(codes) 혹은 명령어들 (instructions)의 집합 • 펌웨어(Firmware) • 하드웨어와 소프트웨어의 중간단계에 해당 • 소프트웨어를 하드웨어화 시킨 것
소프트웨어 • 정보들의 이동 방향과 정보 처리의 종류를 지정 • 동작들이 일어나는 시간을 지정하는 명령(command)들의 집합 [그림 4-4] 소프트웨어의 분류
펌웨어(Firmware) • 시스템 효율을 높이기 위한 ROM에 들어 있는 기본 프로 그램 • ROM에 프로그램이 고정되어 하드웨어의 특성도 가지고 있지만 실제로는 소프트웨어에 더 가깝다. • 소프트웨어를 하드웨어화 시킨 것으로 소프트웨어와 하드웨어의 중간에 해당 • 전형적인 처리루틴, 비휘발성, 변경불가 등의 특징으로 특수한 영역에서 많이 사용
하드웨어 • 컴퓨터의 주요 하드웨어 • 중앙처리장치(Central Processing Unit: CPU) • 프로세서(processor) • '프로그램 실행'과 '데이터 처리'라는 중추적인 기능 수행 • 중앙처리장치는 제어 장치, 연산 장치, 레지스터 등으로 구성
하드웨어 • 컴퓨터의 주요 하드웨어 • 기억장치(memory) • 저장장치(storage device) • CPU가 실행할 프로그램과 데이터를 저장 • 주기억 장치와 보조기억 장치가 존재 • 입출력장치(I/O device) • 사용자와 컴퓨터간의 대화를 위한 도구 • 입력 장치는 입력데이터를 컴퓨터가 이해하는 신호로 변환 • 출력 장치는 중앙처리장치가 처리한 결과를 출력하는 장치
Section 03 컴퓨터의 기능 • 프로그램 실행 • CPU가 주기억장치로부터 프로그램 코드를 읽어서 실행 • 데이터 저장 • 프로그램 실행 결과로서 얻어진 데이터를 주기억장치에 저장 • 데이터 이동 • 보조기억장치에 프로그램과 데이터 블록을 주기억장치로 이동 • 데이터 입력과 출력 기능 • 사용자가 키보드를 통해 보내는 명령이나 데이터를 읽어 들인다. • CPU가 처리한 결과 값이나 기억장치의 내용을 프린터(혹은 모니터)로 출력 • 제어 • 프로그램이 순서대로 실행되도록 또는 필요에 따라 실행 순서를 변경하도록 조정, 각종 제어 신호들을 발생하는 기능
명령어의 수행 과정 • 프로그램의 처리과정 • 명령어 인출(instruction fetch)과 명령어 실행(instruction execution) 반복 [그림 4-7] 명령어의 단계적 수행
레지스터(Register) • 플립플롭으로구성된 장치 • 실행의 중간 결과나 적은 양의 자료를 임시로 저장 • 중앙처리장치 내의 임시 기억 장치역할
레지스터(Register) [그림 4-8] 컴퓨터 내부 구성에서의 저장장치
CPU내의 레지스터 • 프로그램 카운터(PC: Program Counter) • 다음에 실행할 명령어의 주소를 저장하는 레지스터 • 명령어 레지스터(IR: Instruction Register) • 메모리로부터 읽어온 명령어를 수행하기 위하여 일시적으로 저장하는 레지스터 • 기억장치 주소 레지스터(MAR: Memory Address Register) • 다음에 읽기 동작이나 쓰기 동작을 수행할 기억장소의 주소를 저장하는 주소저장용 레지스터
CPU내의 레지스터 • 기억장치 버퍼 레지스터(MBR: Memory buffer Register) • 기억장치에 저장될 데이터 혹은 기억장치로부터 읽은 데이터를 임시적으로 저장하는 버퍼 • 입/출력 주소 레지스터(I/O AR: I/O Address Register) • 입/출력 장치의 주소를 저장하는 주소 레지스터이다. • 입/출력 버퍼 레지스터(I/O BR: I/O Buffer Register) • 입/출력 모듈과 CPU 사이에 교환되는 데이터를 일시적으로 저장하는 레지스터
정보의 표현과 컴퓨터 언어 • 프로그램 코드는 컴퓨터에서 사용하는 형태와 가까우면 저급 언어, 인간이 사용하는 형태와 가까우면 고급 언어로 분류 • 저급 언어(low-level language) • 기계어(machine language)는 기계 코드(machine code)들의 집합 • 컴퓨터 하드웨어 부품들이 이해할 수 있는 언어 • 2진수 비트들로 구성된 코드
정보의 표현과 컴퓨터 언어 • 어셈블리 언어(assembly language) • 어셈블리 코드(assembly code)들의 집합 • 고급 언어와 기계어 사이의 중간 언어 • 저급 언어인 기계어와 일대일 대응 관계로 기계어로의 변환과정이 쉽다. • 고급 언어(high-level language) • 영문자와 숫자로 구성되어 사람이 이해하기 쉬운 언어 • C, PASCAL, FORTRAN, COBOL • 프로그래머가 쉽게 작성할 수 있으나 컴퓨터가 이해 할 수 있게 번역하는 과정 필요
컴파일러와 어셈블러 • 컴파일러(compiler) • 인간이 작성하기 쉬운 고급 언어 프로그램을 하드웨어가 이해할 수 있는 기계어 프로그램으로 번역하는 소프트웨어 • 어셈블러(assembler) • 어셈블리 프로그램을 이진수의 기계어 프로그램으로 번역하는 소프트웨어
덧셈 연산을 수행하는 프로그램의 언어별 표현 • 기계어 표현 • B [그림 4-9] 기계어로의 번역 과정
기계명령어 형식 • 연산 코드(op code) • CPU가 수행할 연산을 지정해 주는 비트들 • 오퍼랜드(operand) • 적재될 데이터가 저장된 기억장치 주소 혹은 연산에 사용될 데이터 비트 • 연산 코드의 비트 수가 3이면, 지정할 수 있는 연산의 최대 수는 23 = 8이 된다. • 오퍼랜드의 비트의 수가 5이면, 주소 지정할 수 있는 기억장소의 최대 수는 25 = 32가 된다. [그림 4-10] 기계 명령어 형식
기억장치에 저장된 기계어 • 단어(word) • 프로그램과 데이터가 기억장치에 저장되는 단위 • CPU에 의해 한 번에 처리될 수 있는 비트들의 그룹 [그림 4-11] 기억장치에 저장된 기계어
명령어 사이클 (instruction cycle) • 중앙처리 장치가 하나의 명령어를 실행하는 데 필요한 전체 처리 과정 • 인출 사이클(fetch cycle)과 실행 사이클(execution cycle)의 부 사이클(sub-cycle) 두 개로 구성 [그림 4-12] 명령어 부 사이클(sub-cycle)의 동작
인출 사이클과 실행 사이클 • 명령어 인출 (fetch cycle) • 주기억 장치에 기억되어 있는 프로그램 명령어를 호출하는 과정 • 단계별 과정 • 프로세서는 PC가 지정하는 기억장소로부터 명령어를 인출 • PC 내용을 증가시키고 인출된 명령어가 명령어 레지스터(IR)로 적재 • 프로세서는 명령어를 해석하고, 요구된 동작을 수행 • 실행 사이클(execution cycle) • 명령어를 실행하는 단계 • 실행되는 동작 분류 • 프로세서와 기억장치 간에 데이터가 전송 • 프로세서와 I/O 모듈 간에 데이터가 전송 • 데이터에 대하여 지정된 산술 혹은 논리 연산이 수행 • 제어(control)동작 : 명령어의 순서가 변경될 때 사용된다.
기본 명령어 사이클 [그림 4-13] 기본 명령어 사이클
Section 04 버스와 상호 연결 • 버스 • 두 개 혹은 그 이상의 장치들을 연결하는 공유 전송 매체 • 버스를 통해 전송되는 유형들 • 프로세서가 기억장치로부터 명령어와 데이터를 읽는 유형 • 프로세서가 기억장치에 데이터를 저장하는 유형 • 프로세서는 I/O 모듈을 통해I/O 장치로부터 데이터를 읽는 유형 • 프로세서가 I/O 장치로 데이터를 전송하는 유형 • I/O 모듈이 DMA를 통하여 기억장치와 직접 데이터를 교환하는 전송 유형 • 시스템 버스(system bus) • 프로세서, 기억장치 및 I/O 장치간의 통신을 위한 상호 연결
시스템 버스 • 시스템 버스는 주소 버스(address bus), 데이터 버스(data bus), 제어 버스(control bus)로 분류 • 주소 버스 • 데이터가 읽혀지거나 쓰여질 기억장소의 주소를 전송하는 통로 • CPU가 외부로 발생하는 주소 정보를 전송하는 신호 선들의 집합 • 주소 선들의 수(주소 버스 폭)에 의해 CPU와 접속될 수 있는 최대 기억장치 용량이 결정 • 주소 버스의 비트 수가 16 비트라면, 최대 216 = 64K 개의 기억 장소들의 주소를 지정 가능 • 최대 기억장치 용량이 64K
시스템 버스 • 데이터 버스 • 모듈들 사이의 데이터 전송 통로 • CPU가 기억장치 혹은 I/O 장치와의 사이에 데이터를 전송하기 위한 신호 선들의 집합 • 데이터 선들의 수는 CPU가 한 번에 전송할 수 있는 비트 수를 결정한다.
시스템 버스 • 제어 버스 • 데이터 버스와 주소 버스의 사용을 제어하는 신호들을 전송하는 통로 • CPU가 시스템 내의 각종 요소들의 동작을 제어하기 위한 신호 선들의 집합 • 기억장치 읽기/쓰기신호, I/O 읽기/쓰기신호, 전송 확인, 버스 요구, 버스 승인, 인터럽트 요구, 인터럽트 확인, 클럭(clock), 리셋(reset)들이 전송
CPU와 기억장치간의 데이터 이동 • 읽기 쓰기 동작을 모두 수행해야 하기 때문에 데이터 버스는 양방향성(bi-directional) • 요구와 확인 신호를 사용하므로 제어 버스는 양방향성(bi-directional) • 주소 버스는 주소가 CPU로부터 기억장치 혹은 I/O 장치들로 전송되므로 단방향성(uni-directional bus)
CPU와 외부장치들과의 데이터 송수신 • 입출력 장치 제어기(I/O device controller) • 입출력 모듈 • CPU와 입출력 장치의 속도의 차이를 극복하기 위해, 시스템 버스와 입출력 장치 사이에 존재 • CPU로부터 입출력 명령을 받아서, 해당 입출력 장치를 제어하고 데이터를 이동시키는 명령을 수행
CPU와 외부장치들과의 데이터 송수신 • 입출력 장치 제어기(I/O device controller) • 상태 레지스터 • 입출력장치의 현재 상태를 나타내는 비트들을 저장한 레지스터 • 준비상태(RDY)비트, 데이터전송확인(ACK)비트가 해당 상태 표시 • 데이터 레지스터 • CPU로부터 입출력 장치간에 이동되는 데이터를 일시적으로 저장 • CPU와 입출력 장치간의 데이터 흐름
시스템 버스를 통한 구성장치의 연결 [그림 4-19] CPU와 입출력장치간의 버스 연결