컴퓨터 구조 11

Chapter6. 병렬 프로세서: 클라이언트~클라우드

Introduction ■ client-server 컴퓨팅모델 : 클라이언트가 요청을 해서 서버가 그 요청을 받아서 자신의 자원을 처리하여 응답을 해주는 형태 ■ 목표: 여러 컴퓨터를 연결하여 성능 향상 - 멀티프로세서 또는 클러스터(컴퓨터묶음) 조직 - 성능향상 멀티 프로세서의 수를 늘리면 확장성(Scalability)이 증가, 가용성(availability), 전력 효율성(power efficiency) ① Task-level(프로세스 레벨) 병렬 처리(parallelism) - 다수의 프로세스를 이용하여 독립적인 프로그램 여러개를 동시에 수행하는 것 - 프로세스마다 자신의 일을 배정받고 독립적으로 처리한다. - 처리율을 기준으로 성능을 파악 ② 병렬 처리 프로그램 - 여러 프로세서를 동시에 실행하는..

컴퓨터 구조 2022.12.12

Chapter5-5. I/O Topics and Storage

Introduction(개요) Traditional Bus Structures ■ 버스(bus)는 공유 통신 링크입니다. ■ Memory Read / Write transaction - I/O Bus에 오른쪽 사각형 : 네트워크 어댑터와 같은 다른 장치를 위한 확장 슬롯 Reading a Disk Sector ① CPU는 디스크 컨트롤러와 연관된 포트(주소)로 쓰기 명령, 논리 블록 번호 및 목적지 메모리 주소를 작성하여 디스크 읽기를 시작합니다. ② 디스크 컨트롤러는 섹터를 읽고 메인 메모리로 직접 메모리 액세스(DMA) 전송을 수행합니다. ③ DMA 전송이 완료되면 디스크 컨트롤러가 CPU에 인터럽트를 알려준다(즉, CPU에 "인터럽트" 핀이 있음). I/O Management ■ I/O 장치는 I/..

컴퓨터 구조 2022.12.11

Chapter5-4. 가상메모리 -2

메모리 계층을 위한 공통 프레임워크 (Chpater5-1 복습) ■ 공통 원칙은 메모리 계층의 모든 수준에 적용됩니다. - 캐싱 개념 기반 ■ 계층의 각 수준에서 - Block placement - Finding a block - Replacement on a miss - Write policy ① Block placement : 블록을 어디에 넣을 수 있을까? ■ 연관성에 의해 결정됨 - 직접 매핑(1-way 연관성) - 배치를 위한 하나의 선택 - n-way 집합 연관 - 집합 내에서 n개의 선택 - 완전 연관 - 임의 위치 ■ 연관성이 높을수록 miss rate(실패율)이 감소 - 복잡성, 비용 및 액세스 시간 증가 ② Finding a Block : 블록을 어떻게 찾을까? 연관정도 블록을 찾는 방..

컴퓨터 구조 2022.12.11

Chapter5-4. 가상메모리 -1

주소변환 과정과 문제 및 해결방안에 대해 다룬다. 가상메모리란(VM)? ■ 제한된 메인 메모리(RAM)의 효율적인 사용 - 가상 주소 공간의 일부에 대한 캐시로 RAM을 사용 - CPU 하드웨어와 OS가 공동으로 관리 - 가상 주소 공간의 활성 영역만 메모리에 유지 → 필요에 따라 데이터를 앞뒤로 전송 ■ 프로그래머에게 메모리 관리 단순화 - 각 프로세스는 동일한 전체 개인 선형 주소 공간을 "얻는다" ■ 주소 공간 격리(보호) - 한 프로세스가 다른 프로세스의 메모리를 방해할 수 없습니다. → 서로 다른 주소 공간에서 작동합니다. - 사용자 프로세스는 권한 있는 정보에 접근할 수 없음 → 주소 공간의 섹션마다 사용 권한이 다릅니다. ■ CPU 및 OS가 가상 주소를 물리적 주소로 변환 - a page ..

컴퓨터 구조 2022.12.11

Chapter5-3. 캐시 메모리

메모리 계층 ■ 메모리 계층의 기본 개념 : 각 레벨 k에 대해, 레벨 k에서 빠르고 작은 장치는 레벨 k+1에서 크고 느린 장치의 캐시 역할을 한다. ■ 메모리 계층이 작동하는 이유는 무엇입니까? : 지역성 때문이다. 프로그램은 k+1 수준의 데이터에 접근하는 것보다 k 수준의 데이터에 더 자주 접근하는 경향이 있다. 따라서 k+1 수준의 저장 속도는 더 느릴 수 있고, 따라서 비트당 더 크고 더 저렴할 수 있다. ■ Big Idea : 메모리 계층은 하단에 가까운 저렴한 저장공간만큼 비용이 들고, 상단에 가까운 빠른 저장공간의 비율로 프로그램에 데이터를 제공하는 대용량 스토리지 풀을 생성합니다. 각각의 특성이 다른 storage pool을 만든다. 참조지역성 근거로 가까운 것을 캐시에 미리 가져놓는다..

컴퓨터 구조 2022.11.23

Chapter5-2. 서로 다른 메모리 기술들

컴퓨터의 주요 구성요소 - 속도 : 프로세서 > 메모리 > 장치 - 적중(Hit)되어서 돌아오는 시간이 제일 빠르게 하기 위해서는 cashe에 들어있는 경우이다. - 프로세서에 가까이 두면 지역성에 의해 예측을 통해 인접 부분에 재차 발생할 확률이 높다. - 캐시와 메인 메모리 사이에는 block, 메인 메모리와 하드디스크 사이에는 page 단위로 전달되며 운영체제가 관리한다. * 캐시 ↔ 메인메모리 : 적중률↑ * 하드디스크 ↔ 메인메모리 : pagefault 발생↓ 지역성의 이점을 어떻게 활용할 것인가? ■ DRAM에서 더 최근에 액세스한 항목(및 근처)을 더 작은 SRAM으로 복사 | Cashes(캐시) ■ 최근에 액세스한 항목(및 근처)을 디스크에서 더 작은 DRAM으로 복사 l Main memo..

컴퓨터 구조 2022.11.22

Chapter.5-1 메모리 계층 이용

데이터 전달: The Big Picture 레지스터는 프로세서의 데이터 경로에 있습니다. 피연산자가 메모리에 있는 경우 프로세서(레지스터)에 로드하고 작동한 후 메모리에 다시 저장해야 합니다. The "Memory Wall" (기억의 벽) ■ Processor vs DRAM 속도 격차가 계속 증가한다. ■ 우리가 원하는 것: 크고 빠른 메모리 ■ 메모리 시스템은 1GB의 SRAM(1ns 접근시간)과 같은 성능을 발휘해야 합니다. 하지만 1GB의 느린 메모리와 같은 비용이 듭니다. Key concept 계층적인 메모리 기술을 사용한다. - CPU근처에 있는 메모리는 크기는 작더라도 속도는 빠른 것으로 하자. - CPU와 멀리있는 메모리는 크기는 크고 속도는 느린 것으로 하자. 우수한 메모리 계층(캐시) 설..

컴퓨터 구조 2022.11.22

Chapter.2-2 컴퓨터 언어

Example Instructions(1) ■ Basic arithmetic operation add a, b, c # a = b + c sub a, b, c # a = b – c → 규칙성을 통해 구현 간소화 ■ 산술 연산 f = (g+h) - (i+j); add t0, g, h # temp t0 = g + h add t1,i, j # temp t1 = i + j sub f, t0, t1 # f = t0 - t1 → 프로그램 변수를 레지스터와 연결하는 것은 컴파일러의 일이다. Example Instructions(2) ■ 메모리 연산 예시 g = h + A[8]; // Assume g in $s1, h in $s2 // Base address of A in $s3 Compiled MIPS (Index ..

컴퓨터 구조 2022.10.04

Chapter.2-1 컴퓨터 언어

명령어 집합의 함수 모든 프로세서는 적어도 다음 작업을 수행할 수 있어야 합니다. 기본 기능 - 산술 연산 및 논리 연산 - 메모리와의 데이터 전송 : 프로세서와 메모리 사이에 데이터를 주고 받아야한다. - 조건부 분기 (ex, if문) - 상태를 확인할 수 있는 방법이 필요합니다. - 조건이 충족되거나 충족되지 않을 경우 분기할 대상 메모리 주소 필요 그렇지 않으면 다음 지시. - 점프 및 서브루틴 링크(절차 호출) - 분기를 위해 광범위한 대상 메모리 주소 필요 - 프로시저 호출에 반송 주소가 필요합니다. 추가 기능: 예 - 레지스터 간, I/O 또는 공동 프로세서(co-processor)로 데이터 이동 co-processor : FPU, MMU - 예외 및 인터럽트 지침 : 상태값 저장하고 명령어 ..

컴퓨터 구조 2022.10.04

Chapter.1 컴퓨터 추상화와 기술

컴퓨터 분류 • 개인용 컴퓨터(Personal Computer, PC) : 낮은 가격으로 단일 사용자에게 좋은 성능을 제공하는 것, 개인적인 이용을 위해 설계된 컴퓨터 - 제 3자(third-party) 소프트웨어를 실행하기 위해 사용 - 범용, 다양한 소프트웨어 - 비용/성능 절충에 따라 다름(가성비) - 이해득실관계 • 서버 컴퓨터 (=> 클라우드 컴퓨팅) : 여러 사용자를 위해서 대형 프로그램을 여러개 동시에 실행하는데 사용하며 주로 네트워크를 통해서 접근한다. - 대용량, 성능, 신뢰성 - 소규모 서버에서 빌드 크기가 다양합니다. • 슈퍼컴퓨터 : 성능과 가격이 가장 높은 컴퓨터 – 고급 과학 및 엔지니어링 계산 ex, 일기예보, 자동차 설계용 컴퓨터, 석유탐사, 단백질 구조 결정 – 가장 높은 ..

컴퓨터 구조 2022.10.03