COMPUTER ARCHITECTIRE 제 1장 컴퓨터 시스템 이해 COMPUTER ARCHITECTIRE
목 차 1-1. 컴퓨터 구조 1-2. 컴퓨터의 발달 역사 1-3. 컴퓨터 분류 1-4. 컴퓨터의 기본 구성 1-5. 컴퓨터 구조의 성능측정
1-1. 컴퓨터 구조 컴퓨터 구조란? “컴퓨터 시스템에서 각각의 하드웨어 장치 기능과 각 하드웨어 장치 사이에서의 정보와 제어의 흐름” 명령어 셋(instruction set), 하드웨어장치, 시스템 조직을 포함하는 컴퓨터 설계
1) 컴퓨터 구조학습 1-1 컴퓨터 구조 고급언어 프로그램 어셈블리어 프로그램 소프트웨어 기계어 프로그램 회로 다이어그램 논리 다이어그램 소프트웨어와 하드웨어 영역 기계어 프로그램 마이크로 프로그램 어셈블리어 프로그램 고급언어 프로그램 레지스터 변환 표기 하드웨어 소프트웨어 [그림 1-1] 컴퓨터 시스템 구조
2) 명령어 셋 구조와 하드웨어 시스템 구조 명령어 셋 역할 명령어들의 설계와 컴퓨터의 연산 특성 결정 1-1 컴퓨터 구조 2) 명령어 셋 구조와 하드웨어 시스템 구조 명령어 셋 역할 명령어들의 설계와 컴퓨터의 연산 특성 결정 기계언어(machine-language)를 통하여 프로그래머가 컴퓨터를 작동시킬 수 있도록 명령을 구성 명령어들의 물리적 구현과 논리적 설계와의 조정 자료의 기능적, 구조적 개념과 처리과정 [그림1-2] 명령어 셋 역할 software hardware Instruction set
3) 컴퓨터 구현 구현(implementation) 컴퓨터 구조의 분류 예 컴퓨터: 명령어 셋 구조의 구현 1-1 컴퓨터 구조 3) 컴퓨터 구현 구현(implementation) 컴퓨터: 명령어 셋 구조의 구현 하드웨어 시스템 구조설계와 실제적 설계를 뚜렷하게 설명 컴퓨터 구조의 분류 예 회사별: CDC 6600, IBM 360 발달과정: 1,2,3,4 세대의 컴퓨터 컴퓨터 구조 분류방식: 노이만 방식 기계와 비노이만 형태 (배열처리기구조와 다중처리기 구조 등) 컴퓨터 요소: 진공관과 트랜지스터 ★ CDC 6600 = 1964년 5월, 미국 CDC의 세이무머 크레이가 만든 메인프레임 컴퓨터로, 최초의 슈퍼컴퓨터라 일컬어진다.
4) 컴퓨터 계열 컴퓨터 계열(computer-family)이란? 1-1 컴퓨터 구조 4) 컴퓨터 계열 컴퓨터 계열(computer-family)이란? 수행방식이 하나의 컴퓨터구조와 같지만 다양한 방식의 구현을 실현 가능 유사한 명령어 셋 구조이거나 같은 명령어 셋 구조 구현방식을 가짐 다양한 기술, 다른 메모리 크기, 다른 속도를 통하여 같은 컴퓨터계열 범위에서 각각 다른 모델 형성 가능
5) 호환성 형태 상향 호환성 하위 호환성 순방향 호환성 1-1 컴퓨터 구조 5) 호환성 형태 상향 호환성 컴퓨터 시스템이나 주변장치가 이전의 버전에서 처리하였던 모든 기능을 포함하며 새로운 기능을 추가하여 고성능 처리능력을 갖춘 것 하위 호환성 한 컴퓨터가 다른 컴퓨터와 호환성을 갖추고 있으나 모든 기능을 포함하지 못하고 일부 중요한 기능만을 갖추고 있는 컴퓨터 순방향 호환성 한 컴퓨터 계열과 최근 또는 파생된 컴퓨터 계열 사이의 소프트웨어 호환성
6. 컴퓨터 구조에 영향을 미치는 요소 기술 프로그래밍 언어 응용프로그램 발달과정 운영체제 1-1 컴퓨터 구조 Computer Architecture [그림1-3] 컴퓨터 구조의 영향 요인
6) 컴퓨터 구조에 영향을 미치는 요소 논리소자 기술 가. DRAM칩 용량 1-1 컴퓨터 구조
6. 컴퓨터 구조에 영향을 미치는 요소 논리소자 기술 나. 마이크로프로세서 논리밀도 1-1 컴퓨터 구조 [그림1-5] 무어의 그래프(칩과 트랜지스터 수)
6) 컴퓨터 구조에 영향을 미치는 요소 논리소자 기술 다. 마이크로프로세서 속도(um=마이크로 메타) 1-1 컴퓨터 구조 [그림1-6] 마이크로프로세서와 속도
응용프로그램 6) 컴퓨터 구조에 영향을 미치는 요소 워드프로세서, 스프레드시트 CAD/CAM 멀티미디어(Multimedia) 1-1 컴퓨터 구조 6) 컴퓨터 구조에 영향을 미치는 요소 응용프로그램 워드프로세서, 스프레드시트 CAD/CAM (computer-aided design / computer-aided manufacturing) 멀티미디어(Multimedia) 웹(Web) 또는 웹서버(Web server) - 유비쿼터스(Ubiquitous) 컴퓨팅 [그림1-7] 웹 서버
6) 컴퓨터 구조에 영향을 미치는 요소 운영체제 컴퓨터 사용자와 컴퓨터 하드웨어간의 인터페이스를 담당 1-1 컴퓨터 구조 6) 컴퓨터 구조에 영향을 미치는 요소 운영체제 컴퓨터 사용자와 컴퓨터 하드웨어간의 인터페이스를 담당 사용자가 프로그램을 수행할 수 있도록 환경 조성 초기의 일괄처리 시스템에서 다중 프로그래밍, 시분할 시스템, 실시간 시스템(Real-Time System), 분산시스템, 다중처리기 시스템 등으로 발전
6) 컴퓨터 구조에 영향을 미치는 요소 프로그래밍언어 객체지향언어 - 캡슐화, 상속성, 다형성의 특징을 지원 웹 언어 1-1 컴퓨터 구조 6) 컴퓨터 구조에 영향을 미치는 요소 프로그래밍언어 객체지향언어 - 캡슐화, 상속성, 다형성의 특징을 지원 - C++, Java 등 웹 언어 웹 문서 혹은 웹 페이지를 작성하는 스크립터 언어 XML, ASP, PHP, JSP, CGI(Common Gateway Interface)의 Perl 등
1-2. 컴퓨터의 발달 역사 컴퓨터의 발달과정 진공관 시대 트랜지스터 집적회로 (IC) 고밀도 (LSI) 초고밀도 (VLSI)
1) 1950년대 초기 . [ 대표적 기종] - UNIVAC(1951) - IAS machine(1952) 1-2 컴퓨터 발달 역사 1) 1950년대 초기 Main memory PC 연산장치 2 차 메모리장치 Tele - typewriter Card reader 프린터와 I/O 장치 CPU . [ 대표적 기종] - UNIVAC(1951) - IAS machine(1952) - IBM701(1953) IBM709(1958) Institute for Advanced Study(프린스턴 고등 연구소) [그림1-8] 1세대 컴퓨터 구조
2) 1950년대 중기 – [ 대표적 기종] IBM 7090 / 7094 / Stretch IBM 140 IBM 1620 1-2 컴퓨터 발달 역사 2) 1950년대 중기 CPU 누산기 MQ 산술 논리 회로 DR 콘솔 IBR 인덱스 레지스터 XR(1 - 7) 가산기 AR PC IR 제어 메모리 제어장치 ( 멀티 플렉서 ) 코어 주소 제어신호 DR : 데이터 IBR : 명령 버퍼 IR : AR : PC : 프로그램 카운터 : 승수 저장 입출력 프로세서 – [ 대표적 기종] IBM 7090 / 7094 / Stretch IBM 140 IBM 1620 CDC1604 CDC 6600 Burroughs B5000 [그림1-9] IBM 7094의 구조
3) 1960년대 [ 대표적 기종] IBM 360/370 DEC PDP-8/I DEC PDP-11/40 1-2 컴퓨터 발달 역사 3) 1960년대 테이프 장치 디스크 제어 IOP (Selector Channel) (multiplexer 메인 메모리 CPU 콘솔 카드 판독기 라인 프린터 입출력 인터페이스 [ 대표적 기종] IBM 360/370 DEC PDP-8/I DEC PDP-11/40 DEC VAX 11/780 [그림1-10] IBM System 360 구조
4) 1970년대 제 4세대 컴퓨터 논리회로 소자를 고밀도 집적회로 또는 초고밀도 집적회로를 사용한 시대 하드웨어 측면 1-2 컴퓨터 발달 역사 4) 1970년대 제 4세대 컴퓨터 논리회로 소자를 고밀도 집적회로 또는 초고밀도 집적회로를 사용한 시대 하드웨어 측면 소프트웨어 측면 - 고속의 반도체 기억 장치 인텔리전트(intelligent)단말기의 개발 네트워크(광통신) 및 인터넷의 실용화 슈퍼컴퓨터, 개인 컴퓨터 등장 마이크로 프로그래밍의 실용화 데이터베이스 시스템의 개발 -사람과 기계 사이의 인터페이스를 개선한 구이(GUI ; Graphical User Interface) 시뮬레이션 기술의 확립
5) 미래 과제: 컴퓨터의 계산능력 확대 해결방법: 구조를 바꾸는 방법 배열처리기 컴퓨터 파이프라인 처리기 컴퓨터 1-2 컴퓨터 발달 역사 5) 미래 과제: 컴퓨터의 계산능력 확대 해결방법: 구조를 바꾸는 방법 배열처리기 컴퓨터 파이프라인 처리기 컴퓨터 다중 처리기 컴퓨터 대안구조 형식으로 신경망 네트워크(neural network), 데이터흐름(data flow) 구조
1-3. 컴퓨터 분류 컴퓨터 분류 노이만형 컴퓨터 Flynn의 구조적 분류
1) 노이만형 컴퓨터 1-3 컴퓨터 분류 [그림1-11] 노이만형 컴퓨터 구조 외부 장치 스크린 , 키보드 등과 대화 프로그램에서 요청된 산술 / 논리 연산 수행 프로그램 실행 데이터와 저장 [그림1-11] 노이만형 컴퓨터 구조
1) 노이만형 컴퓨터 기준 3가지 기본적인 서브시스템으로 구성 프로그램 내장방식 명령(Instructions)의 순차처리 1-3 컴퓨터 분류 1) 노이만형 컴퓨터 기준 3가지 기본적인 서브시스템으로 구성 중앙처리장치(CPU) 메인메모리(main-memory) 시스템 입출력 시스템 프로그램 내장방식 명령(Instructions)의 순차처리 메인 메모리와 CPU의 제어장치 사이에 하나의 경로(path)로 구성
[그림1-12]노이만형(a)과 하버드기계(b)의 구조 1-3 컴퓨터 분류 1) 노이만형 컴퓨터 명령과 실행주기 메인 메모리 시스템 입출력 시스템 연산 레지스터 산술 논리 장치 제어장치 제어 장치 주소경로 데이터와 명령경로 명령주소 경로 데이터 제어 처리 장치 프로그램 카운터 (a) (b) 데이터 경로 [그림1-12]노이만형(a)과 하버드기계(b)의 구조
1) 노이만형 컴퓨터 프로그램 내장 방식(Stored-program) 문제점 1-3 컴퓨터 분류 1) 노이만형 컴퓨터 프로그램 내장 방식(Stored-program) 컴퓨터의 명령어와 데이터를 2진 숫자로 코드화 하여 기계 내부에 저장 문제점 중앙처리장치와 메인 메모리 간의 데이터 전달 과정에서의 병목현상 GUI환경으로 바뀌면서 처리해야 할 연산의 급격한 증가(노이만형 컴퓨터의 구조적인 문제) 해결방법 병렬처리방식 또는 데이터흐름(data flow)
2) Flynn의 구조적 분류 명령어 스트림 데이터 스트림 컴퓨터에 수행되는 명령어들의 순서 1-3 컴퓨터 분류 2) Flynn의 구조적 분류 명령어 스트림 컴퓨터에 수행되는 명령어들의 순서 데이터 스트림 명령어 스트림에 의해 참조되는 데이터의 순서 [그림1-13]Flynn의 구조적 분류
2) Flynn의 구조적 분류 SISD (Single Instruction stream, Single Data stream) 1-3 컴퓨터 분류 2) Flynn의 구조적 분류 SISD (Single Instruction stream, Single Data stream) - 제어장치와 프로세서를 각각 하나씩 갖는 구조. - 한 번에 한 개의 명령어와 데이터를 처리하는 단일 프로세서 시스템 SIMD (Single Instruction stream, Multiple Data stream) - 하나의 제어장치와 여러 개의 ALU로 이루어진 배열 프로세서로 구성 - 제어장치에 의해 여러 개의 ALU가 동기화되어 명령어를 수행한 후 결과는 메모리에 저장됨 - 데이터의 배열이나 행렬을 이용한 연산에 효과적임 MISD (Multiple Instruction stream, Single Data stream) - 여러 개의 처리기가 하나의 데이터 스트림에 대하여 서로 다른 명령어를 실행하는 구조 - 현실적으로 구현되기 어려운 구조임 MIMD (Multiple Instruction stream, Multiple Data stream) - 여러 개의 제어기와 처리기가 서로 다른 명령어와 데이터를 처리함
1-4. 컴퓨터의 기본 구성 [그림1-14] 컴퓨터 기본적 기능 장치
1) 컴퓨터의 기본 동작 입력 장치를 통해 정보(프로그램과 데이터)를 받아 메모리로 전달하고 저장 1-4 컴퓨터의 기본 구성 1) 컴퓨터의 기본 동작 입력 장치를 통해 정보(프로그램과 데이터)를 받아 메모리로 전달하고 저장 메모리에 저장된 정보는 프로그램의 제어에 따라 인출되어 산술 및 논리 기능 장치에서 처리 처리된 정보는 출력 장치를 통해 표시되거나 또는 기억장치(보조기억장치)에 저장 컴퓨터 내부의 모든 동작들은 제어 장치에 의해 제어
1-4 컴퓨터의 기본 구성 2) 디지털 입력 정보 명령어 CPU와 입출력 장치 사이 그리고 컴퓨터 내부에서의 정보 전달 수단이면서 실행될 산술 및 논리 연산 동작을 명시해 주는 문장 자료(data) 2개의 값 중 하나를 가지는 비트라고 표현되는 2진수들의 문자열로 부호화 BCD형식 ASCII코드 EBCDIC코드
3) 하드웨어 구성 전자회로 장치 기계 장치 입력 장치 메모리 장치 산술 및 논리 장치 출력 장치 제어 장치 1-4 컴퓨터의 기본 구성 3) 하드웨어 구성 전자회로 장치 입력 장치 메모리 장치 산술 및 논리 장치 출력 장치 제어 장치 기계 장치 Computer Control Input Memory output Datapath [그림1-15] 컴퓨터의 기본 구조
4) 소프트웨어 소프트웨어 구성 -시스템 소프트웨어 응용소프트웨어 운영체제 프로그래밍 언어 언어 번역기(처리기) 장치드라이버 1-4 컴퓨터의 기본 구성 4) 소프트웨어 소프트웨어 구성 -시스템 소프트웨어 운영체제 프로그래밍 언어 언어 번역기(처리기) 장치드라이버 유틸리티 프로그램 응용소프트웨어 응용 프로그램 패키지 사용자 프로그램 등 Word Processing Graphics Spreadsheets Communications Databases Games Applications Software Assembler Debugger Compilers File Mgrrt Tools Operating System Utilities Systems Software Computer Hardware [그림1-16] 소프트웨어(시스템, 응용)
1-4 컴퓨터의 기본 구성 5) 버스 [그림1-18]버스
1-4 컴퓨터의 기본 구성 6) 컴퓨터 네트워크 컴퓨터를 통신망에 의하여 상호 연결하여 소프트웨어나 데이터베이스를 공유하도록 함으로써 컴퓨터의 효율적인 이용을 목적으로 하거나, 대형 컴퓨터를 원격지에서 이용하기 위한 방법으로 네트워크(통신망)를 구성 예: 은행 - 본점에 설치한 대형컴퓨터와 지점의 컴퓨터를 결합한 네트워크 구성
1-5. 컴퓨터 구조의 성능 측정 일반성 CPU 성능 적응성 효율(유효)성 사용의 용이성 메모리 성능 유연성 확장성 속성별 측정 시스템 성능 일반성 적응성 효율(유효)성 사용의 용이성 유연성 확장성 CPU 성능 처리율 이용율 응답시간 입출력 성능 메모리 성능 메모리 대역폭 메모리 엑세스시간 메모리 크기