본문 바로가기

Computer Architecture75

[컴퓨터구조] 1206 (2) Parallel Processors from Client to Cloud Introduction ▷ 목표: connecting multiple computers. - Multiprocessors Task 단위 병렬성 Parallel processing program: 하나의 프로그램이 여러 프로세서 위에서 돈다. Multicore multiprocessors: Chips with multiple processors Hardware ans Software ▶ 하드웨어 Serial Parallel ▶ 소프트웨어 Sequential: 행렬 곱셈 Concurrent(경쟁): 운영체제 Parallel Programming : Parallel software is the problem. ▷ Difficulties:.. 2023. 12. 6.
[컴퓨터구조] 1206 (1) RAID (Rebundant Array of Inexpensive Disks) RAID 0: 큰 disk를 작은 여러 개의 disk를 나눠서 사용한다. RAID 1: N+N disks, replicate data RAID 2: N+E disks, error correcting code(ECC) RAID 3: N+1 disks for 1 parity disk, byte-level RAID 4: N+1 disks for 1 parity disk, block-level --> RAID 3 vs. RAID 4: Parity를 계산하는 방식에서 차이가 있다. RAID 5: N+1 disks, parity disk를 따로 두지 않고 여러 disk에 parity를 분할해서 담는다. RAID 6: N+2 disks, .. 2023. 12. 6.
[컴퓨터구조] 1204 Interconnecting Components : CPU, memory, I/O device controller 사이의 interconnection이 필요하다. Bus: Parallel set of wires for data and synchronization of data transfer. --> 성능은 물리적 요인의 제약을 받는다. Bus Types ▶ Processor-Memory buses: CPU와 memory를 연결해주는 버스 => Main memory --> bus --> north bridge --> bus --> CPU Short, high speed ▶ I/O buses: Processor-Memory bus와 I/O device를 연결해주는 버스 => Disk --> bus --> .. 2023. 12. 4.
[혼자 공부하는 컴퓨터구조] 07-2. RAID의 정의와 종류 1TB 하드 디스크 네 개와 4TB 하드 디스크 한 개를 비교해보자. 1TB 하드 디스크 네 개로 RAID를 구성하면, 4TB 하드 디스크 한 개의 성능과 안전성을 능가할 수 있다. 그렇다면 RAID가 무엇이며, 왜 이런 차이가 발생하게 되는지 알아보자. RAID의 정의 ▶ RAID(Rebundant Array of Independent Disk) : 데이터의 안전성 혹은 성능을 위해, 여러 개의 물리적 보조기억장치를 마치 하나의 논리적 보조기억장치처럼 사용하는 기술 RAID의 종류 RAID 0 : 여러 개의 보조기억장치에 데이터를 단순히 나누어 저장하는 구성 방식 하나의 대용량 저장 장치를 이용했더라면 여러 번에 걸쳐 읽고 썼을 데이터를 동시에 읽고 쓸 수 있다. --> 4TB 저장 장치 한 개를 읽고.. 2023. 12. 4.
[혼자 공부하는 컴퓨터구조] 08-2. 다양한 입출력 방법 입출력 작업을 수행하려면 CPU와 device controller가 정보를 주고받아야 한다. 그렇다면 device controller는 CPU와 어떻게 정보를 주고받을까? 프로그램 입출력 (polling) - 메모리 맵 입출력(memory mapped I/O) - 고립형 입출력(isolated I/O) 인터럽트 기반 입출력 DMA 입출력 1. 프로그램 입출력 (polling) : 프로그램 속 명령어로 I/O device를 제어하는 방법 CPU가 프로그램 속 명령어를 실행하는 과정에서 입출력 명령어를 만나면, CPU는 I/O device에 연결된 device controller와 상호작용하며 입출력 작업을 수행한다. 이렇듯, 프로그램 입출력 방식(polling)에서의 입출력 작업은 CPU가 device c.. 2023. 12. 4.
[혼자 공부하는 컴퓨터구조] 08-1. 장치 컨트롤러와 장치 드라이버 장치 컨트롤러 (device controller) ▷ Device controller가 필요한 이유? I/O device의 종류가 너무 많다. 일반적으로 CPU와 메모리의 데이터 전송률은 높지만, I/O device의 데이터 전송률은 낮다. --> I/O device는 컴퓨터에 직접 연결되지 않고 device controller라는 하드웨어를 통해 연결된다. ▷ Device controller의 역할: CPU와 I/O device 간의 통신 중개 오류 검출 데이터 버퍼링 **버퍼링(buffering): 전송률이 높은 장치와 낮은 장치 사이에 주고받는 데이터를 버퍼(buffer)라는 임시 저장 공간에 저장하여, 전송률을 비슷하게 맞추는 방법이다. 즉, 버퍼에 데이터를 조금씩 모았다가 한꺼버내 내보내거나, .. 2023. 12. 4.
[CA] Lecture #26 (1) Block Replacement Policy ▶ LRU (Least-Recently Used) Direct mapped cache: Set 하나 당 엔트리가 1개이다. 따라서 선택지는 하나뿐이다. 2-way associative cache: Set 하나 당 엔트리가 2개이다. 따라서 가장 덜 최근에 사용된 것을 지우고, 그 자리에 필요한 데이터를 쓴다. --> timestamp를 위한 bit: 1-bit (2^1 = 2) Fully associative cache(= 4-way associative cache): Set 하나 당 엔트리가 4개이다. 따라서 가장 덜 최근에 사용된 것을 지우고, 그 자리에 필요한 데이터를 쓴다. --> timestamp를 위한 bit: 2-bit (2^2 = 4) - 장점:.. 2023. 12. 1.
[컴퓨터구조] 1129 (2) Storage & I/O Introduction I/O devices: input/output, storage I/O bus connections: I/O System Characteristics Dependability Performance - Latency(= response time): desktop, embedded system에서 중요 - Throughput(= bandwidth): server에서 중요 Dependability Fault: failure of a component. Dependability Measures Reliability: MTTF(mean time to failure) -- 높을수록 좋다. Service interruption: MTTR(mean time to repai.. 2023. 11. 29.
[컴퓨터구조] 1129 (1) Virtual Machines : 소프트웨어적으로 만들어낸 가상 컴퓨터 --> host 컴퓨터가 guest 운영체제를 따라할 수 있도록 한다. Resource sharing: virtualized HW resource를 guest OS와 host OS가 공유한다. Virtual Machine Monitor (VMM) : VMM handles real I/O devices. Emulates generic virtual I/O devices for guest. Guest 코드는 native machine에서 user mode로 동작한다. Example: Timer Virtualization Native machine: timer interrupt --> OS suspends current process, h.. 2023. 11. 29.