OLC에서 민상렬 교수님이 강의하신 컴퓨터 구조론을 듣고 정리를 해보고자한다.
먼저 ISA가 뭔지 보기전에 ADT의 관점에서 ISA를 이해해 보고자 한다. ADT는 State와 Operation으로 구분할 수 있는데,
Stack을 예시로 들자면 Stack에서의 State는 데이터 + 데이터의 순서(oredering)이라고 할 수 있고, Operation은 push, pop같은 함수일 것이다.
이제 ISA를 ADT의 관점에서 보면, State는 Register,Memory로 볼 수있고 Operation은 Instruction이다.
Cashe Memory와 Memory
컴퓨터의 효율을 증가시키기위해 수많은 디자인 테크닉들이 발명되고 발전되어가고 있다.
그 중에서 cashe memory부분에서 대부분의 경우 중요하게 생각되는 common case에 대해 이야기 해보자 한다.
cashe memory는 일반적으로 SRAM으로 만들어졌고 memory는 DRAM으로 만들어졌다.
이 둘은 cost와 performance가 trade - off한 관계에있다. 즉, cashe memory는 상대적으로 가격이 비싼대신 수행능력이 높고 용량도 적다,memory는 가격이 싼대신 수행능력이 낮고,용량은 많다.
그렇다면 우리가 잘 디자인해서 cashe memory는 용량은 적지만 수행능력이 높으므로 cashe memory에 들어갈 녀석들을 잘 예측을하도록 설계(즉, common base를 잘 정의)한다면 잘 설계하지 못한것보다 상대적으로 가격은 낮고 수행능력이 높게 메모리를 구성할 수 있을 것이다.
common base를 정의할때 고려하는 대표적 특성은1. Temporal locality(시간 지역성):어떤 주소가 참조되면 가까운 미래 다시 접근할 가능성이 높다고 판단한다ex)for문의 int i , 참조된 block을 시간순으로 줄세운후 cashememory에 집어넣는다.
2.satial locality(공간 지역성):어떤 주소가 참조되면 그 주변이 가까운 미래에 참조될거라고 판단한다.(memory를 block단위로 잘라서 cashe에 올려놓는다)
Correctness Criteria
Cashe memory가 어떤식으로 구현되는게 제대로 구현된 것인지 이야기 해보자면
cashe memory가 없는 시스템에서 instruction을 실행한 결과가 있는것고 똑같이 나온다면 그건 correct하게 만든것이다.
비슷하게 piplines excution을 잘설계했다 한거는 sequential과 비교해봤을때 동일하게 결과가 나왔다면 correct하다고 말할수있다.
Correctness가 첫번째로 중요하고 이것을 잘 설계했다면 다음으로 performace를 고려해볼 수있다.
예시를 들어보자, 내가 짜장면 집을갔다고 했을때 손님 입장에서 중요한거는 짜장면이 얼마나 빨리 나오느냐일 것이고, 주인입장에선 오늘 얼마나 많이 짜장면을 파느냐가 중요할것이다.
이처럼 Performance는
Client측면에서 중요하다고 생각되는 Time, Server입장에서 중요하게 생각되는 Rate 이 2개를 relative하게 이야가 할 수 있는 Ratio로 Performance를 측정한다.
'컴퓨터 구조론' 카테고리의 다른 글
| [컴퓨터 구조론]4. Calling Convention (0) | 2025.01.02 |
|---|---|
| [컴퓨터 구조론]3.MIPS -2 (0) | 2024.12.31 |
| [컴퓨터 구조론]3. MIPS -1 (0) | 2024.12.29 |
| [컴퓨터 구조론]2-1 summary (0) | 2024.11.22 |
| [컴퓨터 구조론]2.Virtualization (0) | 2024.11.14 |