-
programmable: use computer as our purpose → store, retrieve, and process data
-
Von Neuman Architecture(Stored-program Computer)
- 프로그램과 data는 memory에 저장된다.
- 여기서 memory는 어떤 종류의 memory든 다 포함한다. 예를 들어 ssd, hard disk 등등있다.
- 우리의 컴퓨터는 이 구조에 기반되어 있다.
- 특정한 프로그램을 열 때 이미 저장되어 있는 프로그램을 연다. CPU와 main memory에 load된다. 또한 Datapath는 특정한 계산을 한다. machine language가 그 예시 이다. Control unit은 datapath를 control한다. 자세한 것은 Ch4에서 다룰 것이다.
- keyboard와 마우스가 Input, 모니터가 output이라고 보면 된다.
-
Modern Computer organization
- multi-processor: 하나의 chip에 multicore→ 많은 cpu가 있다.
- 하나의 cpu에는 ALU(arithmetic logic unit)가 있는데 이를 통해 더하기 빼기 나눈 등 logical operation을 수행한다. AND, OR, NOR 등등
- RF(register file)와 Cache는 memory unit이다. register은 정보를 저장할 수 있고 register file은 register의 collection이다. chche는 temporary 메모리이다.
- 이 모든 것은 Bus로 연결 되어 있다. Bus는 각각의 요소를 연결하는 통로와 같은 역할을 한다.
-
Layered Structures of Computer
- hardware, software로 나눌 수 있는데 hardware의 가장 기본적인 것은 transister라고 보면 된다. transistor로 circuit은 만들고 이를 이용해 digital design을 구성한다. 이들을 활용해 datapath를 만들고 control한다. logic element를 활용하여 datapath를 만들고 이러한 multiple datapaths를 통해 processor, memory, I/O system을 만든다. 이를 hardware라고 한다.
- software의 경우 OS는 hardware를 control하기에 hardware와 밀접한 관련이 있다. Instruction Set Architecture를 통해서 hardware를 control한다. 예를 들어, ISA를 통해 OS를 개발한다. 따라서 개발자는 Assembly language를 알아야 한다.
- Application software: high-level language(C, Java, python)로 구성되었다.
- System software: Application software는 H/W를 System software를 통해 사용할 수 있다. Conplier를 통해 HLL을 machine code로 바꿔줄 수 있다. OS 또한 H/W를 control할 수 있다.
- Hardware: Processor, memory, I/O controller
-
Levels of Program code
- HHL은 사람의 언어에 기반된 언어이다. productivity와 portability를 제공하며, complier는 이를 assembly language로 변환한다.
- Assembly language는 다시 machine language로 변환되는데 이는 0과 1로 이루워져 있다. 기계는 오직 0과 1만 이해할 수 있기 때문이다.
-
Memory
- Volatile main memory: 끄면 데이터를 잃는다. 일시적인 프로그램들이 여기 해당한다.
- Non-volatile secondary memory: 끄더라도 데이터를 잃지 않는다.