Computer Science
-
MIPS, Memory Operands and Constant(Immediate) OperandsComputer Science/Computer Architecture and Organization 2021. 4. 4. 16:25
Memory Operands 위의 예시에서는 간단한 더하기 빼기였지만, 실제 프로그래밍에서는 훨씬더 복잡한 컨셉이 등장한다. 예를들어 Array, Tree, Linked List 또는 Map과 같은 것들이다. 어떻게 컴퓨터는 이런 큰 Data Structure를 접근하고 나타낼 수 있을까? 프로세서는 아주 작은 양의 데이터를 registers에 보관할 수 있는데, 컴퓨터의 메모리는 수십GB부터 수TB까지, 더 큰 컴퓨터는 그 이상의 방대한 양의 정보가 저장되어있고 처리를 기다리고 있다. 위에서 말했든, Arithmetic Operations(사칙연산)들은 MIPS instructions에서는 오직 프로세서의 registers에서만 처리될 수 있고, 그렇기때문에 MIPS는 registers와 memory간..
-
Register and MIPSComputer Science/Computer Architecture and Organization 2021. 4. 4. 16:24
Register C, Java와 같은 high-level languages과 MIPS와 같은 instruction set의 차이는 무엇일까? 하드웨어에는 제한된 저장 공간이 있는데 그것을 register이라고 부른다. MIPS architecture에서 register의 사이즈는 32bit이었는데, 여러번의 버전 업그레이드 후 현재는 64bit사이즈의 register를 많이 사용하고, 그것보다 큰 사이즈의 레지스터도 존재한다. 보통 한 컴퓨터에는 32개 또는 그것보다 조금 많은 레지스터가 있다. 그런데 왜 32개뿐일까? 더많은 레지스터를 사용하면 더 빠른것 아닌가? 어짜피 칩의 크기는 크지 않으니 조금 크게 하면 되지 않을까? 바로 컴퓨터 아키텍쳐에서 가장 중요한 이 법칙 때문이다. "Smaller is..
-
컴퓨터의 언어, MIPSComputer Science/Computer Architecture and Organization 2021. 4. 3. 22:47
미국사람과 대화를 하려면 영어를 해야하고, 프랑스사람과 대화를 하려면 프랑스어를 해야하듯, 컴퓨터와 대화를 하려면 컴퓨터의 하드웨어가 알아들을 수 있는 컴퓨터의 언어를 해야한다. 이를 instructions라고 하고 이 언어의 문법을 instruction set이라고 한다. 그중 MIPS 명령어 체계는 아주 간단하고 깔끔하다! 아래 차트를 보면 MIPS 명령어 체계가 잘 정리되어있다. 이 차트를 이용해서 아래 수식을 풀어본다면 어떻게 표현할 수 있을까? a = b + c; d = a - e; 더하는 명령은 add, 빼는 명령은 sub을 사용해서 아래와 같이 표현할 수 있다. add a, b, c sub d, a, e 그렇다면, 조금 복잡한 아래와같은 수식은 어떨까? f = (g + h) - (i + j)..
-
Power의 벽, GHz가 높은 CPU가 좋은 CPU인가?Computer Science/Computer Architecture and Organization 2021. 3. 27. 11:01
수많은 세월동안, Intel을 필두로 수많은 CPU가 생산되어왔고 발전되어왔다. 앞선 포스트에 따르면, 많은 Clock을 처리할 수 있으면 제일 좋은 CPU일것만 같다. 하지만! 아래 그래프를 보면 25년간 Clock Rate는 많이 증가했지만, 처음 성장에 비하면, 최근에는 거의 변하지 않는 추세이다. 왜일까? 바로 파워이다. 초당 3.6GHz의 성능을 내려면 열이 발생하고, 그 열을 지속적으로 식히는것에는 한계가 있다. 그렇기때문에 요즘 CPU 생산 업체들은, Clock Rate를 높이는것보다 더 좋은 효율을 찾는데 집중을 하는것으로 보여진다. 위 자료는 2012년도에 출간된 책이기 때문에 2012년 당시 최근 차료를 보여준다. 그런데, 2021년 현재도, Clock Rate는 그렇게 높아지지 않았다..
-
PerformanceComputer Science/Computer Architecture and Organization 2021. 3. 25. 21:35
CPU Performance 시간은 컴퓨터 성능 측정에 있어서 중요한 수단이다. 시간을 나타내는 방법은 다양한데, wall clock time, response time 또는 elapsed time와 같은 표현은 디스크 엑세스, 메모리 엑세스, input/output, 운영체제 overhead등을 포함해서, 테스크가 시작부터 끝까지 걸린 총 시간을 나타낸다. CPU time (CPU execution time)은 CPU가 한 작업을 위해 쓰여진 시간으로, I/O이나 다른 프로그램을 돌린 시간은 측정되지 않는다. 조금더 들어가보면, user CPU time (프로그램에 쓰여진 시간)과 system CPU time (운영체제에 쓰여진 시간)으로 나눠질 수 있다. 언제 하드웨어가 가동되는지 알려주는 time ..
-
Processors and MemoryComputer Science/Computer Architecture and Organization 2021. 3. 21. 09:56
프로세서와 메모리는 엄청난 속도로 발전해왔다. 1951년과 비교했을 때, 지금 컴퓨터에 사용되고 있는 circuit과 비교했을 때, 수천억 이상의 성능을 낸다 (아직 발표되지 않은 기술이 많기 때문에 그 이상의 성능을 내는 칩도 분명히 존재할 것이다). Transistor 트랜지스터는 간단하게 전자적으로 on and off를 하는 장치이다. 키고, 끄는 조금은 단순한 장치이다. Integated Circuit (IC)는 수백 수천개의 트랜지스터를 한 칩에 넣은 것을 말한다. 그러니까 키고 (1) 끄는 (0) 장치가 수천 개 모여있으니, 만약 1000개가 있다면, 1개였을 때 1, 0 두 숫자를 표현할 수 있다. 반면에 이 천 개의 트랜지스터를 사용해서 숫자를 표현해본다면 0부터 21000 - 1의 숫자까..
-
아이패드를 해부해보자 (사진으로만)Computer Science/Computer Architecture and Organization 2021. 3. 17. 00:09
태블릿, 그리고 스마트폰도 컴퓨터의 일종이다. 그렇다면 값비싼 아이패드 내부는 어떻게 생겼을까? 데스크탑 컴퓨터를 보면 크기가 아주 큰데, 어떻게 고성능을 내는 태블릿에 컴퓨터 장치들이 모두 들어가있는것일까? 값비싼 아이패드를 직접 해부하는것 보단, 인터넷에 있는 사진을 통해 살펴보도록 한다. 위 사진은 Ipad Pro 9.7를 분해한 것이다. 왼쪽부터 디스플레이, 두개의 셀로 나눠져있는 배터리, 컴퓨터의 주요 요소들이 있는 보드, 그리고 애플 로고가 새겨진 아이패드의 뒷판이 있다. 그 옆에는 조심스럽게 겉옷이 벗겨진 아이펜슬이 있다. 자세한 사항은 ifixit 링크로 가면, 부품별로 설명되어있는데, 이 포스트에서는 보드를 더 자세히 살펴보도록 한다. 먼저, 주황색 네모안 Toshiba의 flash st..
-
컴퓨터 구조와 장치, 그리고 PixelComputer Science/Computer Architecture and Organization 2021. 3. 16. 23:21
각자의 역할 컴퓨터의 안으로 조금 더 깊숙이 들어가 보자. 거의 모든 컴퓨터들은 같은 기본 동작을 한다: input, output, processing 그리고 storing. 입력을 받고, 밖으로 내보내고, 데이터를 처리하고 저장하는 것을 컴퓨터라고 말할 수 있다. 새로 컴퓨터를 구매했다고 상상해보자. 여러가지 장치 또한 구매하거나 사용하던 것을 써야 하는데, 그 장치는 어떤 역할을 하는 장치들일까? 대부분 크게 input 또는 output 장치(device)로 나눌 수 있다. input device 는 컴퓨터에게 정보를 입력해주는 장치이다. 예를 들면 키보드, 마우스, 마이크 등에 해당한다. 이러한 기기들은 사용자가 만든 신호를 컴퓨터에게 전달한다. output device는 컴퓨터가 계산한 결과를 사..