본문 바로가기

전체 글

(291)
[컴퓨터구조] Parallel Processing(1) 현재 글은 컴퓨터 구조와 아키텍처 서적 및 대학에서 들은 강의를 기반으로 한다. Flynn's taxonomy flynn이라는 사람이 병렬 동작을 염두에 두고 제시한 컴퓨터 아키텍처의 분류 방식으로, instruction stream 및 data stream의 구성에 따라 크게 4개로 분류된다. SISD: Single Instruction Single Data SIMD: Single Instruction Multiple Data MISD: Multiple Instruction Single Data MIMD: Multiple Instruction Multiple Data SISD 단일 프로세서가 하나의 메모리 데이터에 대해 단일 연산을 수행하는 방식. 가장 간단한 구조로, 현재는 기본이 멀티 코어 시스템이..
[컴퓨터구조] ILP & superscalar processor(2) 현재 글은 이 글에서 이어진다. Superscalar Implementation 슈퍼스칼라를 구현하는데 필요한 요소들은 다음과 같다. 여러개의 instruction을 병렬적으로 다룰 수 있어야 한다. 동시에 여러개의 instruction을 fetch하기 위한 전략을 가진다 여러개의 instruction을 병렬적으로 initiate, issue할 수 있다. 프로세스를 올바른 순서로 commit(complete) 할 수 있어야 한다. 레지스터의 값과 관련하여 true dependency을 다룰 수 있는 로직, 실행 중 해당 값을 필요한 위치에 전달하기 위한 매커니즘이 필요하다. Tomasulo algorithm https://en.wikipedia.org/wiki/Tomasulo%27s_algorithm t..
[컴퓨터구조] ILP & superscalar processor(1) 현재 글은 컴퓨터 구조와 아키텍처 서적 및 대학에서 들은 강의를 기반으로 한다. ILP(Instruction Level Parallelism) ILP는 instruction 수준에서 병렬적으로 처리할 수 있는 정도를 의미한다. 기본적으로 instruction은 컴파일러에 의해 분석된 머신 코드 수준에 해당하는데, 이 정도 레벨이 되면 상호 간에 의존성이 높아 동시에 병렬적으로 실행될 수 있는 비율 자체는 그리 높지 않다고 한다. SuperScalar 연구 결과에 따르면 instruction 레벨에서 데이터를 처리할 때 상수 : 스칼라: 벡터 관련 instruction의 비율은 대략 20 : 55 : 25 정도로 나타났다. 이는 실제 기기에서 instruction의 대부분을 스칼라 관련 instructio..
[컴퓨터구조] RISC 현재 글은 컴퓨터 구조와 아키텍처 서적 및 대학에서 들은 강의를 기반으로 한다. 과거 컴퓨터의 발전 family concept : 기계의 아키텍처를 구현과 분리. 동일 아키텍처를 이용하되, 다양한 가격대의 부품을 둬서 실제 구현은 다르게 만드는 방식. 아키텍처가 같기 때문에 소프트웨어를 공유해서 사용할 수 있다. microprogrammed control unit : control unit을 하드웨어 회로로 구현하는 대신 ROM 상의 프로그램으로 구현하여 family concept을 지원하기 좋음 캐시 메모리 : 메모리 계층 상에 캐시를 도입하여 성능 향상 파이프라이닝 : fetch & execute 사이클에 병렬성 도입 multiple processor 등등 여러가지 존재. RISC(Reduced In..
[컴퓨터구조] 프로세서 구조 및 기능(1) 현재 글은 컴퓨터 구조와 아키텍처 서적과 학교 교안을 기반으로 한다. 프로세서가 하는 일 Fetch Instruction: 메모리(캐시, 레지스터 포함)에서 instruction을 읽는다. Interpret Instruction: 해당 Instruction이 수행해야 하는 작업을 알기 위해 decode 한다. Fetch Data: I/O 또는 메모리로부터 필요한 데이터를 읽어온다. Process Data: 데이터에 대해 arithmetic / logical 연산을 수행한다. Write Data: 연산 결과를 메모리 또는 I/O 모듈에 쓴다. 이러한 동작들이 제대로 실행될 수 있도록 프로세스가 구현되어야 한다. 레지스터 구조 프로세서 내부에는 메모리 계층 상 메인 메모리 및 캐시보다 상위에 위치하는 레지스..
내가 까먹는 html / css 방법들 내가 자주 까먹어서 찾아보는 html이나 css 방법들을 하나씩 적어본다. html input에서 키보드 입력은 받기 싫은 경우(마우스만 허용) { e.preventDefault(); return false; }} /> onKeyDown 에서 preventDefault() 및 return false을 하면 키보드 입력을 받지 않을 수 있다. textarea 맞춤법 검사 기능 끄기 css a 태그 밑줄 삭제 a { text-decoration: none; } li 태그 숫자나 점(dot) 삭제 ol, ul { list-style-type: none; } li 말고 상위의 ol, ul에서 선언해야 한다. 이미지 늘리지 않으면서 크기에 맞추기 a { width: 250px; height: 250px; obje..
[컴퓨터구조] Instruction set(2) 현재 글은 컴퓨터 구조와 아키텍처 서적 및 대학에서 들은 강의를 기반으로 한다. Addressing Mode 컴퓨터 내에는 다양한 주소 지정 방식이 존재한다. 각각의 모드는 저마다 존재 이유가 있지만 모든 아키텍처가 반드시 제시되는 주소 모드를 구현할 필요는 없으며 최적화나 아키텍처의 설계 의도에 따라 많이 변형될 수 있다. Basic Addressing Modes 컴퓨터에서 일반적으로 다음과 같은 주소 지정 방식을 고려할 수 있다. 이러한 주소 지정 방식들은 컴퓨터 내에서 상황에 따라 instruction 마다 각각 addressing mode이 설정된다. Immediate: Instruction 내에 데이터 포함 Direct: Instruction 내에 주소 포함 Indirect: Instructio..
[컴퓨터구조] Instruction set(1) 현재 글은 컴퓨터 구조와 아키텍처 서적 및 대학에서 들은 강의를 기반으로 한다. Instruction Set 디자인에서 고려할 사항 Operation repertoire: 얼마나 많은 operation이 있나? 구성 및 복잡한 정도는 어떤가? Data Types Instruction formats: opcode 필드 길이, 주소의 개수( instruction에서 사용하는 주소: 3, 2, 1, 0 address ) Register Addressing modes CISC vs RISC Number of address 각각의 instuction에 몇 개의 address가 존재하는지를 결정할 수 있다. 현실에서 사용하는 대부분의 연산은 unary 또는 binary로 표현되므로 최소 2개의 operand을 위한..