Domain (72) 썸네일형 리스트형 7. I/O (Input/Output) I/O Module 실제 I/O Device들은 I/O Module에 연결되어 있는 구조이다. I/O Module이 I/O device와 다른 컴퓨터 내부 장치들과의 상호작용에 기여한다. I/O Module을 사용하는 이유 I/O 장치들의 속도가 다양함 데이터의 형태가 모두 다름. I/O Device의 발전 Programmed I/O Interrupt-driven I/O DMA (I/O Processor) Check status CPU I/O I/O Transfer data CPU CPU I/O ▶ Programmed I/O 와 Interrupt-driven I/O는 전송 속도가 제한되고 CPU가 I/O장치를 지속적으로 관리해야 되기 때문에 좋지 않다. * Direct Cache Access : I/O가.. 10. Computer Arithmetic 정수 표현 방식 1. Sign-Magnitude Representation 사람과 같이 수를 표현하는 방법. 양수, 음수 표현이 쉬우나 0을 표현이 두가지이고 덧셈과 뺄셈을 부호와 숫자 따로 계산해야 한다. 2. Twos Complement Representation 양수나 음수 값이 있을 때 0, 1의 값을 바꾸고 1을 더하는 방식. 0의 표현이 1가지 이고 비트 수를 늘리고 싶을 때 sign(부호) 앞에 같은 sign 값을 개수만큼 늘리면 된다. Overflow가 발생할 가능성이 있다. Subtraction rule : 컴퓨터가 뺄셈을 하지 않게됨. Overflow rule 같은 부호의 합의 결과로 carry가 나온 경우. 부호를 제외한 숫자들의 합에 carry가 나온경우(=부호가 바뀐 경우). 앞의.. 11. Instruction Set : Characteristrics and Function Instruction(명령어) 구성요소 Opcode Operand1 Reference Operand2 Reference Operand3 Reference Next Instruction Opcode : 수행해야 할 Code Operand1,2 reference : 수행해야 할 Data의 위치 정보 Operand3 reference : 저장할 위치정보 Next Instruction : 다음 수행할 명령어 * Operand가 저장된 위치 Main memory, I/O device Register Immediate value Endian Support -Little endian 낮은 자릿수를 높은 주소에 저장. -Big endian 높은 자릿수를 높은 주소에 저장 Shift and Rotate Operation.. 12. Instruction Sets : Addressing Modes and Formats Addressing mode 명령어를 수행하는 과정에서 피연산자를 fetch하기 위해 캐시 혹은 메모리에 접근하는 방식 종류 Mode 접근 방식 장점 단점 Immediate Operand에 값이 들어감 실행속도가 빠름 표현 가능한 데이터 크기가 제한적이다. Direct Operand에 실제 값의 주소 메모리 참조 1회 주소 공간에 제약이 있다. Indirect Operand에 실제 값의 주소의 주소 주소 공간에 제약이 없다. 메모리에 참조 2회. 느리다. Register Operand에 레지스터에 존재하는 값의 주소 실행속도가 빠르다. 주소 공간이 짧다 주소 공간이 제한적임. Indirect Register Operand에 레지스터 주소가 있고 레지스터에는 메모리에 있는 값의 주소가 있음. 주소 공간이 .. 13. RISC vs CISC RISC(Reduced Instruction Set Computer) 명령어 개수가 적고, 간단하다. 파이프라인 구조를 사용하기에 더욱 적합하다. 특징 고정적 크기를 가진다. 파이프라인에 적합하다. 주소 접근 방식이 간단하고 적다. 레지스터의 수가 많다. Hardwired Control Unit을 사용한다. CISC(Complex Instruction Set Computer) 명령어가 복잡하고 많다. 하나의 명령어로 많은 연산을 수행한다. 특징 가변적 크기를 가진다. 주소 접근 방식이 많다. 레지스터 수가 적다 μ-programmed Control Unit을 사용한다. 14. 파이프라인(pipeline) 파이프라인(pipeline) 동시에 여러개의 명령어를 수행하여 CPU 처리 효율을 높이는 방법 파이프라인을 사용할 때와 사용하지 않을 때의 처리 시간 1. non-pipeline Toriginal=nkt 2. pipeline Tadvanced=kt+(n-1)t=(n-1+k)t ∴speedup = Toriginal/Tadvanced=lim nkt/(n-1+k)t=k 즉 파이프라인을 사용하면 파이프라인을 사용한 단계 수 만큼 향상된다. 각 명령어 단계에서는 t 시간이 소요된다. k는 단계 수. n은 명령어 개수. 파이프라인 설계 최적화 방법 Optimized Delayed Branch : 기존에 NOOP을 넣던 delayed branch의 방식에서 발전하여, 분기 이후에 흐름에 영향이 없는 명령어를 끼워넣는.. 17. Parallel Processing Multiple Processor 구조 1. SISD(Single Instruction Single Data Stream) 2. SIMD(Single Instruction Multiple Data Stream) 3. MISD(Multiple Instruction Single Data Stream) 4. MIMD(Multiple Instruction Multiple Data Stream) Shared Memory(Tightly Coupled) - SMP, NUMA 메모리를 공유하는 구조 Distributed Memory(Loosley Coupled) - Clusters 내부 연결장치를 이용하여 설계한 구조 종류 1. 대칭형 다중 처리(SMP, Symmetric Multiprocessing) 각각의 cpu는.. 1. 연결리스트 연결리스트 다음 연결에 대한 참조만을 갖는 기본적인 연결리스트. 첫 항목부터 순차적으로 접근하기 때문에 O(n)의 시간 복잡도를 갖는다. 기본적인 자료구조로 사용되는 배열의 경우 물리적으로 인접하여 접근 시간 단축 및 캐싱에 유리하지만, 연결리스트는 그렇지 않다. 하지만 배열에 비해 삽입이 간단하며 배열에 비해 사이즈 변경에 신경 쓸 일이 없다는 점에서 유리하다. 결론적으로 삽입은 연결리스트, 조회는 배열이 유리하다. class Node{ friend class linkedList; private: int value; Node* link; public: Node(int v, Node* l):value(v),link(l) {} }; class linkedList{ private: Node* head; pu.. 이전 1 ··· 5 6 7 8 9 다음