728x90
반응형

컴퓨터(Computer Science)/컴퓨터구조(Computer Arichitecture) 30

Cache Performance, 캐시의 성능 [컴퓨터구조]

우리는 앞서 CPU, 프로세서의 성능을 측정했다. 즉, 프로세서에서 캐시가 영향을 미치는 정도가 캐시의 성능이 될 것이라고 간접적으로 알 수 있다. CPU time에 영향을 미치는 요소가 있다. 실제로 프로그램을 CPU가 실행하는 시간과 Data에 접근하는 시간 2가지로 나눌 수 있다. 캐시에서는 Data에 접근하는 시간이 중요하게 여겨진다. 아래의 조건 하에 우리는 CPU 성능을 다르게 표현할 수 있다. 위의 식을 이용하여 실제로 예를 들어서 구해보자 Miss panaty가 100 cycle이다. -> Main memory에서 가져오는 데 필요한 사이클 Base CPI (모두 다 cache hit만 할 경우의 CPI를 말한다.) Load/Store -> 메모리에 접근하는 instruction이 36% ..

메모리 계층구조, Memory Hierarchy 에 대한 보충내용[컴퓨터구조]

메모리 계층구조를 하는 이유 캐싱을 위함. 캐싱 안할거면 계층적 구조를 가질 필요도 없음 즉, 모든 계층에서 Block placement Finding a block Replacement on a miss Write policy 를 정해줘야함. 우리는 답을 이미 배워왔다. Block placement 에 대해 다시 복습해보자 Associativity에 따라 성능이 결정되는 것을 이전 시간에 알아봤다. 하지만 그것도 마냥 높다고 좋은 것이 아니었다. Miss rate를 줄여줬지만 hit time을 늘리는 결과를 가져오기도 했다. 또한 Comparator를 이용한다면 비용도 올라가기도 했다. Find a block은 어떨까?? Direct는 entry에 하나 밖에 들어있지 않기 때문에 index로 바로 구할..

캐시, Cache - 기본 원리 [컴퓨터구조]

캐시 메모리에 대해서 이어나가보자 이번에는 캐시 메모리가 어떻게 작동을 하는지 원리를 알아보겠다. 즉, Xn이 없다가 생긴 것을 보여준다. 캐시로 Xn을 올린 것인데 여기서 3가지 의문점이 들어야한다. 0. 해당 데이터가 캐시에 들어있는지 어떻게 찾는거지? 1. 없다면 해당 데이터를 어떻게 찾는거지? (즉, 답하자면 하위레벨에서 다시 찾는다.) 2. 해당 데이터를 어떻게 다른 빈칸도 아니고 저 빈칸에 놓는거지? 사실 제일 간단한 방법은 **메모리의 각 워드에 캐시 내의 위치를 할당하는 즉, 메모리 주소에 기반을 두고 할당하는 "직접 사상( direct mapping)" 이다. ** 메모리 위치는 캐시 내의 딱 한 장소에 직접 사상된다. 물론 다른 방법도 있다. 사실 캐시를 사용하기 위해 필요한 비트 수는..

2의 보수(2's complement) [컴퓨터구조]

최근 다시 정리: [프로그래밍언어(Programming Language)/C || C++] - 2의 보수, 2's complement [C] 솔직히 그냥 이진법만 알지 컴퓨터에 관심이 하나도 없으면 모를 것 같은 2의 보수에 대해서 알아보려고 한다. 나도 처음에는 감이 하나도 안왔다... 뭐길래?? 우선 컴퓨터는 2진수를 사용한다. 0과 1 이거는 컴퓨터를 배우지 않아도 살다보면 알게 되는 상식 중에 하나였다. 그런데 우리는 2진수에서 음수를 표현할 때 -하나 붙혀서 표현했지만 컴퓨터는 어떻게 표현할까? 라는 의문을 가진다. (안 가졌으면... 그럴 수 있지) 아무튼 컴퓨터는 음수를 010101로 어떻게 표현할까? 그래서 나온 것이 2의 보수이다. 우선 MIPS를 배웠으니 MIPS에서는 수 표현을 어떻게..

컴퓨터 성능이 생각대로 늘어나지 않는 이유, 암달의 법칙(Amdahl's Law)[컴퓨터구조]

우리가 클럭 2배면 컴퓨터 성능이 2배가 될 것을 기대하지만 사실 엄청난 착각을 하며 기대하고 있는 것을 가끔씩 까먹는다. 그 착각은 컴퓨터의 한 부분만 개선하고 그 개선된 양에 비례해서 전체 성능이 좋아질거라고 생각하는 것이다. ?? 사실 이미 나왔던 생각이기도 하다. 앞에서 나왔던 Make Common Case Fast 의 생각을 하면 되겠다. 이제 자세히 알아보자 이 식을 보고 넘어가자 T는 시간이다. 예를 들어서 컴퓨터에서 100초 걸리는 프로그램이 있는데 그 중 80초는 더하기, 곱셈 연산에 쓰인다고 하자. 그렇다면 이 프로그램을 5배 빠르게 하려면 더하기, 곱셈 연산은 어느 정도의 속도로 향상시켜야 할까? 더하기 연산의 속도를 5배로 올린다고 바로 프로그램의 수행시간이 바로 20초로 줄어들까?..

컴퓨터의 성능을 가로막는 전력, Power Wall [컴퓨터구조]

클럭속도를 높이면 성능이 올라가는데...? 왜 요즘 클럭속도는 높아봐야 4-5GHz 밖에 안되느냐???? 라고 할 수 있다. 이 그림은 Intel이 보여주는 Clock rate 와 Power의 관계를 나타낸 것이다. 저기 보면 같이 전력도 클럭 속도도 올라간다. (2004년을 기점으로 정체) -> Power Wall 클럭속도는 정체되어있지만 분명 소비전력이 줄어드는 발전이 있다. 소비 전력을 줄이는 발전도 물론 발전이다. 그런데 사람들은 전력을 더 쓰더라도 속도를 원한다. 하지만 그럴 수 없는 이유가 있다. 예를 들어보자 분명 새로운 CPU가 더 소비전력이 낮아졌다. 즉, 발전을 하긴 했는데...? 클럭 속도는 예전 것이 더 빠르다. 그냥 소비전력 상관없이 클럭속도 올려!!!라고 할 수 있겠지만 소비 전..

컴퓨터 구조 분야에 대한 8가지 아이디어 [컴퓨터구조]

컴퓨터 구조를 얘기할 때 MIPS, RISC 그런 것들보다도 우선되는 생각이 있다. 사실 이 생각을 하지 않고 개발하면 개발하나마나 똑같은 결과라고 할 정도로 정말 중요한 생각들이 있다. 무려 8가지나 된다. 영어 설명도 넣어줄테니까 실망하지말고 공부해보자 8가지를 우선 설명하겠다. 1. 무어의 법칙을 고려한 설계 2. 추상화로 설계하기 3. 반복되는 작업을 빠르게 하기 4. 병렬성을 통한 성능 개선 5. 파이프라이닝 6. 예측 7. 메모리 계층구조 8. 신뢰도를 위한 여유분 영어로는 1. Design for Moore's Law 2. UseUse Abstraction to Simplify Design 3. Make the Common Case Fast 4. Performance via Paralleli..

Integer Arithmetic 사칙연산 [컴퓨터구조]

Artihmetic Operation에 대해서 알아볼 것이다. Addition, Subtraction, Multiplication, Division 물론 Integer 기준으로 먼저 진행해볼 것이다. 덧셈이다. 어렵지 않다. 그냥 두 수를 더하면 된다. 여기서는 자리수가 바뀌는 것을 carry라고 표현했다. Overflow에 대한 설명도 했는데 Overflow는 표현할 수 있는 값의 범위를 넘어가서 정상적이지 않은 값이 되는 것을 말한다. 일반 사람들은 -로 값을 벗어나면 언더플로우 +로 값을 벗어나면 오버플로우라고 하는데 사실 둘다 오버플로우다. 사실 표현할 수 없는 것은 해당 bit로 표현할 수 없기 때문이지 즉 메모리 부족이 원인이다. 숫자의 부호가 중요한 것이 아니다. 오버플로우는 부호가 같은 수..

함수, 프로시저 처리 과정과 메모리 [컴퓨터구조]

일반적으로 6가지로 나눌 수 있다. 위의 그림같이 일어난다. 용어부터 설명하자면 Caller는 callee를 부르는 주체 -> 함수를 부르는 routine을 말함. Callee는 Calling을 당하는 대상 -> 불려지는 함수를 말함 1. 메인 루틴에 $a0부터 $a3까지 argument register에 해당 파라미터를 가져다 놓음 -> 4개의 레지스터이므로 최대 4개까지의 파라미터를 보낼 수 있음. (Callee가 이용할 수 있게) 2. Caller가 Callee에게 제어를 넘김 -> 즉 Caller 루틴이 멈추고 Callee 가 실행된다는 말이다. 3. Callee가 실행되면 Callee가 필요한 자원들을 받기 위해 메모리를 할당 받는다. (보통 stack에 할당) 4. Callee 본연의 역할 수..

CPU 기본구조와 프로세서, Processor [컴퓨터구조]

배웠던 것부터 다시 살펴보고 배울 것을 살펴보자 우선 컴퓨터의 성능은 연산속도와 비례했고 그것은 CPU의 성능과 직결된다. CPU 성능은 클럭속도와 CPI에 의해 결정된다. 또한 MIPS를 통해 파이프라인을 알아볼 것이다. 해당 Instruction을 실행은 아래와 같이 이루어진다. PC가 instruction을 가리키고 해당 Instruction을 decode하여 레지스터를 이용하고 해당 opcode와 같은 operation에 따라서 무엇을 할 지가 결정이 된다. 이 모든 것을 하는 CPU는 어떻게 생겼나 Abstraction 된 것을 보자. **실제와는 다르다. 특징을 보면 위의 Instruction의 실행과 똑같다. 1. PC를 전달하고 PC는 PC + 4 연산이 진행된다. 2. 해당 PC +4 된..

728x90
반응형