메모리 시스템의 이해 * 메모리 계층 * 주 기억장치 * 보조기억장치 메모리 계층 * 기억장치는 CPU에 의하여 시행될 프로그램이 저장되는 곳으로 이는 주 기억장치(Main memory unit)와 보조기억장치(Auxiliary memory unit) 그리고 캐쉬 메모리(Cache memory)로 분류 된다 * 주 기억장치 (Main memory unit) - 마더보드(Motherboard)에 장착됨 - RAM(Random Access Memory) > 비교적 대용량, 고속의 속도를 지님, 휘발성 성질을 지닌다 - ROM(Read Only Memory)도 주 기억장치의 일종 * 캐쉬 메모리 (Cache memory, buffer) - 주기억장치 접근 시간 > 프로세스 논리회로 => MMS & CPU 배치..
Pipeline CPU의 성능 분석 * 파이프라인 분기 예측 * RISC Processor * 파이프라인 CPU 성능 분석 파이프라인 분기 예측 * 명령어 파이프라인이 정상적인 동작에서 벗어나게 되는 요인 - 자원 충돌 (Resource conflict) : 두 세그먼트가 동시에 메모리를 접근하려고 하는 데에서 기인한다 -> 명령어 메모리와 데이터 메모리를 분리함으로써 대부분 해결한다 - 데이터 의존성 (data dependency) : 충돌은 어떤 명령어가 이전 명령어의 결과에 의존하여 수행되는데, 그 값이 아직 준비되지 않은 경우에 발생한다 - 분기 곤란 (branch difficulty) : 분기 명령어같이 PC의 값을 변경 시키려는 명령어에 의해 발생한다 * 데이터 의존성 - 데이터나 주소의 충돌..
Pipeline 구조 - 산술/명령어 파이프라인 구조 * 현실적 병렬적 다중 기능 장치 * 산술 파이프라인 * 명령어 파이프라인 현실적 파이프라인 구조 * 파이프라인 구조 VS 병렬적인 다중 기능 장치 - 실제 파이프라인 구조가 이론적인 최대 속도를 구현하지 못하는 이유 > 각 세그먼트들이 부연산을 수행하는 시간이 서로 다르다 > 또한 각 레지스터를 제어하는 클럭 사이클은 최대 전파시간을 갖는 세그먼트의 지연시간과 싱크를 맞추어야 한다 - 다음 그림과 같이 병렬적인 다중 기능 장치 (=파이프라인 처리 속도)를 고려할 수 있다 > 각 P 회로는 전체 파이프라인 회로에서와 동일하게 태스크를 수행한다 > 그러나 이 구조는 순차적으로 처리가 아니라 모든 회로가 동시에 데이터를 입력 받아 네 태스크를 한꺼번에 수..
Pipeline 구조 - 데이터/구조 * Pipeline 구조 & 구현 * Pipeline 구조 & 데이터 처리 Pipeline 구조 & 구현 - 파이프 라인(Pipeline)의 구현 > 하나의 프로세스를 서로 다른 기능(Function)으르 가진 여러 개의 서브프로세스(Subprocess)로 나누어 각 프로세스가 동시에 서로 다른 데이터를 취급하도록 하는 기법 > 각 세그먼트(segment)에서 수행된 연산 결과는 다음 세그먼트로 연속적으로 넘어가게 되어 데이터가 마지막 세그먼트를 통과하게 되면 최종적인 연산 결과를 얻게 된다 > 하나의 프로세스를 다양한 연산으로 중복시킬 수 있는 근간은 각 세그먼트마다의 레지스터이다 - 간단한 파이프라인 구현 예제 - 곱셈과 덧셈이 섞여 잇는 다항식 연산 > R1 ~..
데이터의 종속성 - 병렬처리 그리고 파이프라인 * 병렬 처리 * 파이프 라인 병렬처리 (parallel processing) * 컴퓨터 시스템의 계산 속도 향상을 목적으로 하여 동시 데잍 처리 기능을 제공하는 광범위한 개념의 기술을 의미한다 * M.J Flynn의 분류방법 - 동시에 처리되는 명령어와 데이터 항목 수에 의해 컴퓨터 시스템의 구조를 파악하려는 분류 방법 제안 (명령어 흐름 (instructionstream) -> 메모리로 부터 읽어온 명령어의 순서, 데이터 흐름 (data stream) -> 데이터에 대해 수행되는 동작 ) - SISD -> 단일 명령어 흐름, 단일 데이터 흐름 - SIMD -> 단일 명령어 흐름, 다중 데이터 흐름 - MISD -> 다중 명령어 흐름, 단일 데이터 흐름 -..
프로그래밍 언어의 실행 * 프로그래밍의 구현 architecture * 컴퓨터 네트워크 환경 프로그래밍의 구현 architecture * 프로그래밍 처리과정 * 소프트웨어 개발 Paradigm - 소프트웨어 위기 현상 (1960 ~ 1970) - 소프트웨어 개발 패러다임 - 구조적 기법 > 원하는 결과를 구하기 위해 일련의 함수로서 프로그래밍 작성 > 데이터와 함수의 분리 > 개발과 유지보수에 많은 COST(비용) 발생 - 객체지향 기법 > 객체 (Object) = 데이터 + 처리기능 (메소드)을 단위화(Black Box)하여 캡슐화(Encapsulation)시키고 각 기능의 상속(Inheritance)으로 기능의 재 사용이 가능 다형성(Polymorphism) - 컴포넌트 기법 > 외부와 Interfa..