Computer Science
[백준] 1764번: 듣보잡_JAVA
문제 김진영이 듣도 못한 사람의 명단과, 보도 못한 사람의 명단이 주어질 때, 듣도 보도 못한 사람의 명단을 구하는 프로그램을 작성하시오. 입력 첫째 줄에 듣도 못한 사람의 수 N, 보도 못한 사람의 수 M이 주어진다. 이어서 둘째 줄부터 N개의 줄에 걸쳐 듣도 못한 사람의 이름과, N+2째 줄부터 보도 못한 사람의 이름이 순서대로 주어진다. 이름은 띄어쓰기 없이 알파벳 소문자로만 이루어지며, 그 길이는 20 이하이다. N, M은 500,000 이하의 자연수이다. 듣도 못한 사람의 명단에는 중복되는 이름이 없으며, 보도 못한 사람의 명단도 마찬가지이다. . 예제1 3 4 ohhenrie charlie baesangwook obama baesangwook ohhenrie clinton 출력 2 baesan..
[CSAPP] 4.5 Pipelined Y86-64 implementations
학습 주제 SEQ를 SEQ+와 PIPE-로 발전시키는 내용. pipeline이 추가되었을 때의 내용. pipeline hazard에 대한 내용. 정리한 내용 4.5 Pipelined Y86-64 implementations 이제 pipeline Y86-64 프로세서 설계한다. 우선 SEQ를 조금 수정해서 PC 계산하는 부분을 fetch stage로 옮긴다. 그 다음 stage 사이에 pipeline register를 추가한다. 처음에는 다양한 데이터와 control dependency를 제대로 처리 못하지만 조금씩 변경하면서 완성 시킬 것이다. 4.5.1 SEQ+: rearranging the computation stages pipeline 설계로 갈 때 우선 SEQ의 5단계를 좀 바꿔서 PC를 업데이..
[CSAPP] 4.4 General Principles of Pipelining
학습 주제 파이프라인 정리한 내용 4.4 General Principles of Pipelining 파이프라인 시스템의 일반적 특징과 원리들을 알아본다. 파이프라인 시스템에서 수행해야 할 일 은 여러 개의 단계의 연속으로 구성된다. 아래 나올 비유에서 “고객”은 instruction이다. 단계들은 instruction 실행의 일부분을 수행함을 기억하고 이해하기. 식당에서 샐러드를 먼저 제공하고, 메인 음식, 디저트, 그리고 음료의 순으로 제공하는 것과 유사하다. 다음 순서가 시작하기 전에 한 고객이 처음부터 끝까지 전체의 과정을 홀로 수행 하는 것이 아닌, 여러 고객이 한번에 시스템을 통해 진행할 수 있다. 전통적인 식당의 줄 처럼, 고객은 일부 음식만을 원할지라도 모든 단계를 통과해 가야한다. (학교와..
[CSAPP] 4.3 Sequential Y86-64 Implementations
SEQ : Sequential Processor 매 클럭 사이클에 SEQ는 한 개의 완전한 인스트럭션을 처리하는데 필요한 모든 단계를 수행한다. 그러나 이렇게 할 경우 사이클의 시간이 매우 길며, 클럭 속도는 매우 느려진다. SEQ를 개발하는 목적은 효율적인 파이프라인 프로세서를 만드려는 첫 단계를 보여주기 위해서이다. 4.3.1 작업을 단계로 구성하기 선입 : Fetch 💡 프로그램 카운터(PC)를 메모리 주소로 사용해서 메모리로부터 인스트럭션 바이트들을 읽어들인다. 인스트럭션에서는 다음과 같은 행동을 수핸한다. 인스트럭션 지시자 바이트의 두 개의 4 비트 부분인 icode(Instruction Code)와 ifun(Instruction Function)을 추출한다. 한 개의 레지스터 지시자 바이트를 ..
[CSAPP] 4.2 Logic Design and the Hardware Control Language HCL (논리 설계와 하드웨어 제어 언어 HCL)
학습 주제 논리 게이트, HCL, 클록, 레지스터, 메모리 정리한 내용 4.2 Logic Design and the Hardware Control Language HCL (논리 설계와 하드웨어 제어 언어 HCL) 하드웨어 설계 시, 전자회로를 사용해서 비트들의 함수를 계산하고 여러가지 메모리 원소들에 비트들을 저장한다. 디지털 시스템을 구현하기 위해서는 세 개의 주요 컴포넌트가 있어야 한다. 비트연산을 위한 조합 회로(combinational logic) 비트를 저장하기 위한 메모리 소자 메모리 소자의 갱신을 조절하는 클럭 신호 4.2.1 Logic Gates (논리 게이트) 논리 게이트는 디지털 회로에서 기초 연산 소자들이다. 논리 게이트는 인풋에 따른 비트 값의 부울 함수의 아웃풋을 생성한다. 하드웨..