반응형

2024/12/18 7

[컴퓨터구조] 메모리 및 캐시 설계 가상 메모리

메모리Base CPI : 캐시 미스가 없을 때, 명령어를 실행하는 데 필요한 사이클 수Cycle Time : CPU의 클럭 주기 시간Miss Rate : 캐시에서 원하는 데이터를 찾지 못하는 비율Miss Penalty : 캐시 미스가 발생했을 때, 데이터를 가져오는 데 걸리는 시간입니다. 평균 메모리 접근 시간(AMAT) : 평균적으로 메모리에 접근하는 데 걸리는 시간AMAT = Hit Time + (Miss Rate * Miss Penalty) Hit Time = Base CPI * Cycle Time 만약 L1 캐시만 있다는 가정 하에서는Base CPI = 1Cycle Time = 0.5nsMiss Rate = 3%Miss Penalty = 100ns AMAT = (1*0.5) + (0.03 * 10..

[컴퓨터구조]페이지 폴트와 Use Bit의 이해

페이지 폴트 발생 시 use bit 페이티 폴트(Page Fault): CPU가 접근하려는 페이지가 현재 메인 메모리에 없을 때 발생하는 인터럽트페이지 교체 알고리즘 : 메인 메모리가 꽉 차서 새로운 페이지를 가져와야 할 때, 어떤 페이지를 내보낼지 결정하는 알고리즘Use bit : 각 페이지에 할당된 비트로, 페이지가 최근에 사용되었는지 여부를 나타냄Use bit 초기화 : 특정 시점에 모든 use bit을 0으로 설정하는 작업Use bit은 페이지가 사용되었는지 여부를 나타내는 지표이므로, 교체 시에는 최근에 사용되지 않은 페이지, 즉 use bit가 0인 페이지를 우선적으로 선택하여 교체합니다. Use bit의 초기화는 메모리 하드웨어 자체가 하는 것이 아니라 운영체제가 주기적으로 수행합니다. 운영..

[컴퓨터구조] 메모리 계층

캐시 : cpu와 주기억장치 사이에 위치한 고속의 작은 메모리로 자주 사용되는 데이터를 저장하여 메모리 접근 속도 향상L1캐시 : 캐시 계층 구조에서 CPU에 가장 가까운 캐시 CPI : 명령어 하나를 실행하는 데 필요한 클럭 사이클 수Miss Rate : 캐시에서 원하는 데이터를 찾지 못하는 비율메인 메모리 접근 시간 : 캐시 미스가 발생했을 때 메인 메모리에 접근하여 데이터를 가져오는 데 걸리는 시간평균 메모리 접근 시간 : 캐시 접근 시간과 메인 메모리 접근 시간을 고려한 평균적인 메모리 접근 시간 AMAT = Hit Time + (Miss Rate * Miss Penalty) Hit time : 캐시에서 데이터를 찾았을 때 걸리는 시간Miss Penalty : 캐시 미스가 발생했을 때 메인 메모리..

[컴퓨터구조] 포워딩 hazard 위험

데이터 해저드 포워딩 해결법포워딩 : 이전 명령어의 결과를 WB 단계까지 기다리지 않고, 필요한 단계에서 바로 다음 명령어에 전달하여 데이터 해저드를 해결하는 기술스톨(stall/bubble) : 필요한 데이터가 준비될 때까지 파이프라인의 진행을 일시적으로 멈추는 것 R-type 명령어의 연산 결과는 EX 단계에서 계산됩니다.  Load 명령어는 메모리 접근을 통해 데이터를 가져와야 하므로, 레지스터에 쓸 데이터는 MEM 단계에서 준비됩니다. R-type 명령어가 데이터를 사용하는 시점은 ID 단계에서 피연산자 레지스터의 값을 읽어 EX단계에서 수행합니다. Load 단계에서 주소 계산을 위해 ID 단계에서 레지스터 값을 읽고 EX에서 데이터를 사용합니다.  Beq 명령어는 분기 판단이 ex단계에서 이루어..

[컴퓨터구조] 파이프라인 해저드 (Pipeline Hazards) 및 해결 방법

Hazard 종류구조적 해저드 (Structural Hazards)필요한 하드웨어 자원을 여러 명령어가 동시에 사용하려고 할 때 발생합니다. 즉  하드웨어 자원 부족으로 인해 발생하는 충돌입니다. 예 ) 하나의 메모리 포트를 가진 시스템에서 명령어 인출과 데이터 접근이 동시에 일어나려고 할 때 발생합니다. 해결방법 : 하드웨어 추가, 파이프라인 정지 (stall) (버블삽입) 데이터 해저드 (Data Hazards)어떤 명령어가 이전에 실행된 명령어의 결과에 의존하는 경우, 이전 명령어가 결과를 생성하기 전에 다음 명령어가 그 결과를 사용하려고 할 때 발생합니다. 데이터 의존성으로 인해 발생하는 문제입니다. RAW(Read After Write) : 어떤 명령어가 이전에 실행된 명령어가 쓴 데이터를 읽으..

[컴퓨터구조] 파이프라인 및 제어신호

정리 표:명령어 유형명령어 예시WB 단계 수행 여부비고R-typeadd, sub, and, or, xor, nor, sll, srl, sra수행jr은 미수행I-typelw, lui수행데이터 전송 명령어I-typeaddi, andi, ori, xori, sw, beq, bne미수행연산 및 분기 명령어J-typej, jal미수행점프 명령어 5단계의 파이프라인 단계에서 IF - ID - EX - MEM - WB에서  load 명령어IF : 명령어 인출ID : 명령어 해독 및 주소 계산EX : 주소 계산MEM : 메모리에서 데이터 읽기WB : 메모리에서 읽은 데이터를 레지스터에 쓰기즉 load 명령어에서는 wb 단계를 수행합니다. store 명령어IF : 명령어 인출ID : 명령어 해독 및 주소 계산EX : 주..

[컴퓨터구조]

Single-cycle 프로세서Single-cycle 프로세서는 하나의 명령어가 각 단계를 하나씩 순차적으로 거쳐야 하므로, 한 명령어를 처리하는 데 필요한 시간은 모든 단계의 시간을 합친 것입니다. 즉 각 단계에서 걸리는 시간 중 가장 큰 값을 기준으로 클럭 주기를 설정해야 합니다.  예시)IF = 200psID = 150psEX = 250psMEM = 250psWB = 100ps 가장 오래 걸리는 시간은 EX와 MEM 단계로 250ps입니다. 하지만 single-cycle 프로세서에서는 모든 단계를 하나씩 순차적으로 처리하기 때문에, 모든 단계의 시간을 합쳐야 합니다. 따라서 최선의 클럭 주기는 모든 단계의 소모 시간의 합입니다. 200 + 150 + 250 + 250 + 100 = 950ps  가 ..

반응형