컴퓨터구조 & OS

파이프라이닝과 관련된 내용을 간단히 정리해본다. ◆ 파이프라이닝 간단히 말해서 명령어를 병렬로 처리한다. 다시 말해 동시에 여러 개의 명령어를 실행하는 것이다. 명령어 동작 속도를 단축시키지는 않는다. 단지 병렬처리할 뿐이다. 시간당 처리량을 늘리는 것이다. 단일 사이클과 대비된다. ◆ 파이프라이닝 종류 컴퓨터에서 사용되는 두 가지 파이프라인은 다음과 같다. * Arithmetic pipeline : 연산작업을 pipeline을 통해 수행하는 건데, 상용 컴퓨터에서는 이렇게 하지 않는다고 한다. * Insturction pipeline : 명령어를 pipeline을 통해 수행하는 것이다. 상용 컴퓨터에서 모두 이 방식으로 명령어를 병렬처리한다. 여기서 Arithmetic pipeline은 다루지 않는다...
이전 글: [컴퓨터구조] 16비트 컴퓨터에서 프로그래밍 하기 | assembly로 쓰여진 프로그램의 구조 어셈블리 언어로 짜인 프로그램의 각 라인은 어떤 과정을 거쳐 기계어로 번역될까? 예를 들어 생각해보자. 어셈블리 프로그램의 일부에 아래와 같은 명령어 라인이 있다고 하자. PL3, LDA SUB I 그럼 우리가 작성한 소스파일에는 위 명령이 아스키코드 기반으로 들어가있다. 각각의 문자는 8비트 아스키코드로 표현된다. 다시 말하자면 우리가 작성한 글자 하나하나마다 최상위비트는 0이고 나머지 7비트는 아스키로 표현되는 8비트로 표현된다. 참고: 아스키 코드 더보기 예시로 든 명령어 라인을 다시 보자. PL3, LDA SUB I 이렇게 어셈블리로 표현한 프로그램을 symbolic program이라고도 말한..
[컴퓨터구조] 16비트 컴퓨터를 설계하자 - Instruction set 정의하기 위 포스팅에서 보았듯이, 아래 표는 16비트 Basic 컴퓨터에서 수행가능한 모든 명령 25개이다. 우리는 이런 명령어들을 이용해 16비트 컴퓨터상에서 Programming을 해 볼 것이다. assembly programming을 할 건데, 앞서 알아아 햘 기본사항부터 확인하자. Assembly 언어로 쓰인 프로그램에서 한 line의 구성 각 라인은 3가지 field로 구성된다. - label field : symbolic address를 쓰거나 비워둔다. - instruction field : machine intstruction 또는 pseudoinstruction - comment field : 주석 아래 프로그램은 ..
[ 이전 글 ] [컴퓨터구조] 16비트 컴퓨터 설계하기 - Instruction Cycles [컴퓨터구조] 16비트 컴퓨터 설계하기 - I/O instruction의 실행 단계에서 벌어지는 일들 이전 글에서 instruction이 fetch되고, decode되고, effective address가 저장되든 말든 하고, execute되는 과정을 보았다. 명령어의 종류에 따라 과정에 차이가 있음을 확인했다. 아래는 16비트 컴퓨터에서 명령어를 수행하는 모든 단계를 보여주고 있는 flowchart다. 컴퓨터 파워가 들어오면 Start부터 딱 시작되어 내려간다. ▶ R=0인 경우에는 일반적인 fetch, decode 단계가 time T0,T1과 time T2 에서 수행된다 ▶ 그리고 D7값을 통해 memory-..
배경 지식 [컴퓨터구조] 16비트 컴퓨터 설계하기 - Instruction Cycles [컴퓨터구조] 16비트 컴퓨터 설계하기 - 명령어의 실행단계에서 벌어지는 일들 원래 이전 글 명령어의 실행단계에서 벌어지는 일들에서 I/O instruction의 실행까지 포함해서 보았어야 했다. 그러나 이번 내용이 너무 길어서 위 포스팅이 지루해질까봐 따로 글을 쓴다. 오늘은 "명령어의 실행단계에서 벌어지는 일" 그 중 input-output명령의 실행단계에서 벌어지는 일들을 공부해보자. 3. Execution of Input-output Instruction 이전 포스팅에 이어서 쓰는 거라 3으로 넘버링한다. Interrupt 개념 이해하기 I/O명령어를 실행하는 과정을 이해하기 위해서는 먼저 Interrupt라는..
배경지식 [컴퓨터구조] 16비트 컴퓨터 설계하기 - Instruction Cycles 위 글에서 명령어가 수행되는 사이클을 공부했다. ■ 타이밍 T0, T1에서 일어나는 fetch과정, ■ 타이밍 T2에서 일어나는 decode과정, ■ 타이밍 T3에서 명령어의 종류에 따라 수행되거나 수행되지 않는, 유효주소를 AR에 넣는 과정, ■ 그리고 마지막으로 남겨둔, 이번 포스팅에서 확인할, "실행"과정이다! 실행과정은 명령어의 종류에 따라 타이밍 T3 혹은 타이밍 T4에서 진행되고, 또한 명령어의 종류에 따라 실행과정에서의 micro-operation도 다르다. Execution 과정은 명령어 종류에 따라 다르다! 명령어 종류는 세가지가 있었음을 기억하자. instruction은 최상위비트 네개가 어떤지에 따라..
우리는 16비트 컴퓨터를 설계하고 있다. 이전 포스팅([컴퓨터구조] 16비트 컴퓨터 설계하기 - Control unit 설계)에서는 Control unit을 공부했는데 여기서 timeT0, T1, ...의 발생을 보았고, 특히 fetch와 decode가 되는 time을 간접적으로 확인했다. 이렇게 명령이 수행되어져가는 time은 instruction cycle 개념과 관련이 있다고 이야기했다. 그래서 이번 포스팅에서는 instruction cycle을 공부할 것이다. instruction cycle ▽ 메모리로부터 instruction을 fetch ▽ instruction을 decode ▽ 메모리로부터 effective address를 읽기 ▽ instuction을 실행 참고로 세번째 단계는 명령어의 종..
컴퓨터 구조는 다음의 세가지로 정의된다고 계속 강조한다. ⓐ 내부 레지스터 - 사용할 하드웨어 자원을 정의하기 ⓑ instruction set - 가능한 명령어 집합을 정의하기 ⓒ control unit - 정의된 명령어들이 하드웨어 리소스상에서 제대로 작동하게끔 설계하기 위 세가지를 정의하고 설계해야 컴퓨터가 이루어진다. 앞선 포스팅에서는 ⓐ와 ⓑ에 해당하는 '레지스터를 정의하는 것, 명령어 집합을 정의하는 것'이 뭔지 확인했다. 그리하여 이번 포스팅에서는, 정의된 명령어들이 정의된 레지스터들을 기반으로 제대로 작동되게끔 설계하는 방법을 확인해 볼 것이다. 즉, Control unit 설계하기! Control unit의 역할? 이 포스팅에서 다음과 같이 얘기했었다. 각 레지스터에는 clock이 연결되어..
배경지식: 지난 포스팅에서 명령어 코드의 구조를 확인했다. 우리의 목적은 컴퓨터를 설계하는 방법을 아는 것이다. 그러기 위해서는 컴퓨터구조를 알아야 한다고 했고, 그 컴퓨터 구조는 세가지로 정의된다고 했다. ⓐ 내부 레지스터 - 사용할 하드웨어 자원을 정의하기 ⓑ instruction set - 가능한 명령어 집합을 정의하기 ⓒ control unit - 정의된 명령어들이 하드웨어 리소스상에서 제대로 작동하게끔 설계하기 위 세가지를 정의, 설계해야 컴퓨터가 이루어진다. 그 중에서 오늘은 ⓑ에 해당하는 insutrction set을 정의하는 모습을 볼 것이다. 즉, 컴퓨터가 수행하는 명령어를 정의하는 것인데, 그러한 명령어는 어떻게 정의해두어야할까? 16비트 컴퓨터의 instruction format 16..
컴퓨터 구조는 세가지로 정의된다. ⓐ 내부 레지스터 - 사용할 하드웨어 자원을 정의하기 ⓑ instruction set - 가능한 명령어 집합을 정의하기 ⓒ control unit - 정의된 명령어들이 하드웨어 리소스상에서 제대로 작동하게끔 설계하기 위 세가지를 정의, 설계해야 컴퓨터가 이루어진다. 이번 포스팅에서는 '내부 레지스터 정의하기'를 공부해보자. Computer Registers 레지스터를 정의한다는 것은, 내가 설계할 컴퓨터에서 사용할 하드웨어 리소스를 어떻게 관리할지 정하는 것이다. 16비트 컴퓨터는 레지스터가 아주 간단하다. 아래 그림은 16비트 컴퓨터의 레지스터 종류다. Mano는 아래와 같이 정의했다. *Morris Mano: 컴퓨터시스템구조 저자 - PC (program counte..
히어로맛쿠키
'컴퓨터구조 & OS' 카테고리의 글 목록 (2 Page)