본문 바로가기

CS/Computer Architecture14

[컴퓨터구조] 저장장치 물리적 특성에 따른 메모리 분류 1) 메모리의 물리적 특성 (1) 휘발성 - 전원이 제거되면 저장된 내용이 사라지는 특성 (2) 비휘발성 - 전원이 제거되어도 저장된 내용이 사라지지않는 특성 (3) 삭제 가능 - 한 번 기록된 내용을 지우고 다른 내용으로 갱신가능한 특성 (4) 삭제 불가능 - 한 번 기록된 내용을 삭제 불가능한 특성 2) ROM(Read Only Memory) - 비휘발성 - 읽기전용 (1) Masked ROM - 생산 공장에서 저장된 내용에 대한 변경이 불가능 (2) PROM(Promgrammable ROM) - Programmble하다는 것은 프로그래머가 필요에 따라 수정가능하다는 의미 - 생산 공장에서 저장된 내용된 것이 아무것도 없으며, 사용자가 필요에 따라 한 번 저장 가능 (.. 2020. 7. 15.
[컴퓨터구조] 인터럽트(Interrupt) 인터럽트 - CPU의 정상적인 동작을 방해하는 것 - 인터럽트란 CPU가 프로세스 실행 중에 입출력 장치나 예외상황 등의 이벤트가 발생해 해당 작업을 먼저 수행하는 기능 1) 인터럽트(External Interrupt) - 프로그램 외부 상황(CPU 외의 다른 장치)에 따라 발생 시점이 일정하지 않게 발생 - 하드웨어 인터럽트 - 비동기식 인터럽트 - I/O Interrupt, Timer Interrupt 등 2) 트랩(Internal Interrupt) - 프로그램 내에서 발생하는 인터럽트로 CPU로부터 발생하는 운영오류 등을 포함 - 소프트웨어 인터럽트 - 동기식 인터럽트 - Divide by zero, Overflow 등 인터럽트 처리 과정 1) 인터럽트 요청 신호 발생 - 프로그램 실행 도중 인터.. 2020. 7. 14.
[컴퓨터구조] 레지스터(Register) 레지스터(Register) - 명령어를 실행하기 위해 필요한 데이터와 상태, 명령어를 저장하는 기억 소자 - CPU 내부에 존재하며, 기억 장치 중 가장 빠르며 용량이 작음 - 데이터 레지스터와 제어용 레지스터로 구분 데이터 레지스터 - CPU가 명령어를 처리하는 과정에서 임시로 처리할 데이터를 저장하거나 메모리의 주소를 저장할 목적으로 사용 - 데이터 레지스터(Data Register), 주소 레지스터(Address Register), 범용 레지스터(General Register)로 구분 1) 주소 레지스터 (1) 스택 포인터(SP, Stack Pointer) - CPU는 현재 실행하고 있는 프로그램의 메모리 영역을 스택으로 관리 - SP는 현재 스택 영역에서 가장 마지막 부분(가장 최근에 저장된)을 .. 2020. 7. 14.
[컴퓨터구조] 시스템 버스(System bus) 시스템 버스(System bus) - 컴퓨터의 구성요소를 서로 연결하고 데이터 전달을 위한 경로 - 주소 버스, 데이터 버스, 제어 버스로 구성 1) 주소 버스(Address Bus) - 메모리의 주소나 I/O Unit의 포트 번호를 전달 - CPU와 Memory는 단방향으로 데이터 전달이 가능한 버스를 이용함으로써 주소 전달은 CPU에서 메모리로만 가능 - CPU, Memory는 I/O Unit과 양방향으로 데이터 전달이 가능한 버스를 사용 2) 데이터 버스(Data Bus) - 데이터 전달 - 각 구성요소(CPU, Memory, I/O Unit)는 양방향으로 데이터 전달이 가능한 버스를 사용 3) 제어 버스(Control Bus) - 제어 신호 전달 - Read와 Write신호가 전달 - 각 구성요소.. 2020. 7. 14.
[컴퓨터구조] 명령어(Instruction) 명령어 사이클 - CPU는 명령어 사이클을 반복해 프로그램을 실행 - Fetch와 Execution 단계로 이루어져 있음 1) 인출 단계(Fetch stage) - 메모리에 저장된 명령어를 읽어들임 - 현재 실행할 명령어를 읽어 명령어 레지스터(IR, Instruction Register)에 저장 - 다음에 실행할 명령어를 읽어 프로그램 카운터(PC, Program Counter)에 저장 2) 실행 단계(Execution stage) - 명령어 레지스터에 저장된 명령어를 실행 - 제어장치는 명령어를 해독하고 제어신호를 생성해 각 구성요소에 전달 - 제어신호에 따라 ALU는 해당하는 연산을 수행 - 각 신호와 데이터는 내부버스를 통해 전달 - 연산에 필요한 데이터와 명령어는 레지스터에 저장 명령어의 종류 .. 2020. 7. 13.
[컴퓨터구조] 컴퓨터의 구성 요소 컴퓨터 구성요소 1) 중앙처리장치(CPU, Central Processing Unit) - 메모리에 저장된 명령어를 읽어들여 수행하는 주체 - 명령어 사이클(Fetch/Execution)을 반복해 프로그램을 실행 (1) ALU(Arithmetic and Logic Unit) - 데이터 처리 - 산술/논리 연산을 수행하는 장치 (2) 제어장치(CU, Control Unit) - 명령어 레지스터에 저장된 명령어를 해석 - 각 컴퓨터 구성요소를 제어할 제어신호를 생성 - 컴퓨터 구성요소는 제어장치의 관리를 받음 (3) 레지스터(Register) - 명령어를 실행하기 위해 필요한 데이터와 상태, 명령어를 저장 (4) 내부 버스(Internal Bus) - CPU 내부의 구성요소 간 데이터 전달과 연결을 위한 경.. 2020. 7. 13.
[컴퓨터구조] 어셈블리어와 고급언어 컴퓨터 언어의 번역 과정 - C 나 Java로 작성된 언어는 기계언어로 번역되기 까지 위와 같은 번역과정을 거침 1) 기계어 - 기계어는 컴퓨터가 이해할 수 있는 언어 - 0과 1로 이루어져있음 - 사람이 이해하기 어렵기 때문에 어셈블리어를 사용해 기계어를 처리 2) 어셈블리어 - 어셈블리어는 0과 1로 이루어진 기계어와 매핑된 심볼 언어 - 어셈블리어는 어셈블러를 통해 기계어로 번역 - add, mult, jump와 같은 기본적인 연산으로 이루어져 있으며, 컴퓨터 구조에 의존적(ex, MIPS) - 따라서 어셈블리어를 사용하는 프로그래머는 컴퓨터 구조와 프로그래머 모델을 이해를 필요가 있음 3) 고급 언어 - C 나 Java는 고급언어 - 어셈블리어와 다르게 컴퓨터 구조에 독립적 - 따라서 고급 언어를.. 2020. 7. 12.
[컴퓨터구조] 폰노이만 구조와 하버드 구조 폰노이만 구조 - 폰 노이만 구조는 현대 컴퓨터 구조의 기반이 된 구조로 입출력장치, 메모리, CPU로 컴퓨터 구조를 설명 1) 구성 요소 (1) CPU - 명령어 사이클을 통해 메모리에서 다음 실행할 명령어를 읽어오고 실행하는 단계를 반복 - 각 명령어에 해당하는 제어신호를 생성하고, 산술/논리 연산 실행 (2) 메모리 - 저장장치에 저장된 프로그램이 실행상태가 되어 메모리에 적재 - 데이터와 프로그램이 저장 (3) 입출력장치 - 사용자로부터 입력을 받고 실행결과 또는 메모리에 저장된 데이터를 출력 2) 장점 - 컴퓨터에 다른 작업을 실행할 때, 하드웨어의 재배치없이 소프트웨어만 교체하면 되므로 범용성이 확장 3) 단점 - 프로그램과 데이터는 같은 메모리에 저장되고 같은 버스를 통해 전달되는데, 파이프.. 2020. 7. 12.
Language of the Computer 컴퓨터가 사람의 언어를 이해하는 과정 사람 -> High level language(C, C++, Java..) -> Assembly language(Instruction) -> machine language(Binary) -> CPU ISA(Instruction Set Architecture) - Instruction의 집합 1) Instruction - 하드웨어와 소프트웨어의 인터페이스 - 프로세서의 동작을 묘사하는 기본 명령 2) CISC (Complex Instruction Set Computer) - 비교적 오래됨 - 복잡하고 많은 명령어로 이루어짐 - 어셈블리 프로그래밍이 쉬운 반면에 CPU 설계가 어려움 3) RISC (Reduced Instruction Set Computer) - 비교적 .. 2019. 12. 23.
Computer Abstraction and Technology Computer 1) 컴퓨터의 종류 - Personal computer : 개인이나 기업에서 범용적으로 사용되는 컴퓨터. 가격과 성능의 절충 - Server computer : 클라이언트에게 네트워크를 통해 정보나 서비스를 제공하는 컴퓨터. 높은 용량, 성능, 신뢰성 - Super computer : 과학기술연산 등 다양한 분야에 사용되는 초고속/거대용량 컴퓨터 - Embedded computer : 다른 기계가 시스템에 내장되어 있는 컴퓨터 2) Post-PC Era - 특정 기능에 특화되고 사용자의 인문학적 소비 겨험에 더 집중하는 디바이스(Personal Mobile Device, Cloud computiong) Eight Great Ideas In Computer Architectures 1) M.. 2019. 12. 22.
Processor - Datapath datapath란? 데이터패스란 CPU안에서 데이터와 주소, 레지스터의 처리 및 연산을 하는 모든 요소를 의미한다 (instruction memory, data memory, PC, Register file, ALU 등 ..) 1. Instruction fetch instruction memory에서 Instruction을 읽어들인다. 1) PC(program count) : 실행해야할 명령어의 주소를 가지고 있는 레지스터 2) Instruction memory : PC로 부터 주소를 읽어들이고 주소에 맞는 Instruction을 output으로 내보냄 3) Add : PC 값을 4byte 씩 증가시키는 연산 수행하므로써 다음 명령어의 주소값으로 PC를 업데이트 시켜줌 2. To implement R-f.. 2019. 12. 17.
Memory Hierarchy Ideal Memory(이상적인 메모리) - 지연시간이 코스트가 없고, 대역폭과 용량이 무한 - 이상적인 메모리의 요구조건은 서로 상반됨(용량이 크면 느려지고, 빠르거나 대역폭이 높아지면 비싸짐) 1. 메모리 종류 1) 휘발성 메모리(volatile memory) (1) SRAM(Static Random Access Memory) - 속도 : 빠름(커패시터가 없음) - 밀도 : 낮음(6T(트렌지스터) cell) - 비용 : 높음 - 커패시터가 없으므로 refresh할 필요없음 (2) DRAM(Dynamic Random Access Memory) - 속도 : 느림(커패시터 있음) - 밀도 : 높음(1T(트렌지스터) 1C(커패시터) cell) - 비용 : 낮음 - 커패시터로 인해 refresh(배터리를 충전.. 2019. 12. 16.