본문 바로가기
반응형

전체 글

(97)
컴퓨터 기초 10 명령어 파이프라이닝, 슈퍼스칼라 기법을 실제로 CPU에 적용하려면 명령어가 파이프라이닝에 최적화되어야 있어야 합니다. 명령어 집합, 명령어 집합 구조(ISA) CPU가 이해 가능한 명령어들의 모음입니다. 명령어 집합에 구조가 붙은 이유로 CPU가 특정 명령어를 이해하는지에 따라 컴퓨터 구조 및 설계 방식이 변경되어 사용됩니다. ISA가 동일한 CPU인 경우 서로의 명령어를 이해 가능하지만 다른 경우 서로의 명령어를 이해 못 합니다. 이러한 점으로 ISA는 일종의 CPU의 언어 인 셈입니다. ISA는 CPU의 언어이자 하드웨어가 소프트웨어를 어떻게 이해할지에 대한 약속입니다. ISA 예 - x86, x86-64 많은 전력이 필요하며 발열도 상대적으로 높음으로 데스크톱, 렙탑에 사용 - ARM CPU는 저전..
컴퓨터 기초 9 CPU 성능을 높이기 위해 멀티코어, 멀티 스레드를 지원하는 CPU를 만드는 것도 중요하지만 CPU가 놀지 않게 작동하게 만드는 것이 중요합니다. 명령어를 동시에 처리하여 CPU를 부지런히 작동시키는 기법으로 명령어 병렬 처리 기법 이 있습니다. 명령어 병령처리 기법에는 '명령어 파이프 라이닝, 슈퍼스칼라, 비순차적 명령어' 처리가 있습니다. 명령어 파이프 라이닝 - CPU의 프로그램 처리 속도를 높이기 위하여 CPU 내부 하드웨어를 여러 단계로 나누어 동시에 처리하는 기술 입니다. 명령어 파이프라인 - 하나의 명령어가 처리되는 전체 과정을 비슷한 시간 간격으로 나누는 것입니다. - 중요 점으로 같은 단계가 겹치지 않는 경우 CPU는 '각 단계를 동시에 실행할 수 있다'는 것입니다. 단계 1. 명령어 인..
컴퓨터 기초 8 클럭 - 컴퓨터 부품들은 '클럭 신호'에 맞춰 동작합니다. - CPU는 '명령어 사이클'이라는 정해진 흐름에 맞춰 명령어들을 실행합니다. - 클럭 속도가 높은 경우 CPU의 성능도 일반적으로 좋습니다. - 클럭의 속도는 CPU의 속도 단위로 간주됩니다. - 클럭의 속도는 헤르츠(Hz) 단위로 측정되며 1초에 1번 반복은 1Hz이고 클럭이 1초에 100 반복되는 경우 100Hz입니다. - 일정하게 반복되는 것 같지만 그렇지 않고 불일 정하게 반복됩니다. - 일정하지 않는 이유로 속도가 높은 경우 발열의 문제가 발생됩니다. - 클럭의 속도가 높은 경우 CPU는 빠르게 동작되지만 CPU의 성능 향상에는 한계가 존재합니다. ※ 오버 클럭킹 : 클럭의 속도를 최대로 사용하는 기법 코어 - '명령어를 실행하는 부품..
컴퓨터 기초 7(명령어 사이클과 인터럽트) 명령어 사이클 ▷ 하나의 명령어를 처리하는 정형화된 흐름입니다. - 프로그램 속 각각의 명령어들은 명령어 사이클이 반복되어 실행됩니다. - 하나의 처리과정을 여러 단계로 세분화하여 독립적으로 다른 작업들이 수행되도록 병렬성을 높입니다. 인출 사이클 - 메모리에 있는 명령어를 CPU로 가지고 오는 단계입니다. - 단일 명령어를 수행한 후 다음 명령을 메인 메모리에서 CPU로 꺼내는 단계입니다. 실행 사이클 - CPU로 가져온 명령어를 실행하는 단계입니다. - 명령의 해독 결과에 해당하는 타이밍, 제어신호를 순차적으로 발생시켜 실제로 명령어를 실행하는 단계입니다. 간접 사이클 - 명령어를 실행하기 위해 메모리 접근을 추가적으로 하는 단계입니다. - 명령어에 포함되어 있는 주소를 이용후 그 명령어 실행에 필요..
컴퓨터 기초 6(레지스터) 레지스터 프로그램 속 명령어, 데이터는 실행 전후로 반드시 레지스터에 저장됩니다. 레지스터 속 값을 유심히 관찰하는 경우 프로그램 실행하는 경우 CPU 내에서 동작, 명령어 수행을 알 수 있습니다. 공간은 작지만 CPU와 직접 연결되어 있어 연산 속도가 메모리보다 실제 수십 배에서 수백 배까지 빠릅니다. 대표적인 레지스터 1.) 프로그램 카운터 2.) 명령어 레지스터 3.) 메모리 주소 레지스터 4.) 메모리 버퍼 레지스터 5.) 플래그 레지스터 6.) 범용 레지스터 7.) 스택 포인터 8.) 베이스 레지스터 1.) 프로그램 카운터 - 메모리에서 가져올 명령어의 주소, 메모리에서 읽어 들일 명령어의 주소입니다. - 프로그램 카운터를 '명령어 카운터'라 부르는 CPU도 있습니다. 2.) 명령어 레지스터 -..
자바 기초 1. 컴포넌트와 모듈의 차이 - 컴포넌트 : 기능의 최소 단위고 프로그래밍에 있어 재사용이 가능한 각각의 독립된 모듈입니다. 컴포넌트 기반 프로그래밍을 하면 레고처럼 조합하여 화면을 구성할 수 있습니다. - 모듈 자바에서 제공하는 기능은 자바 1.9부터 사용 가능합니다. 외부에서 재사용할 수 있는 패키지들을 묶은 것을 만합니다. 서로 다른 프로젝트가 impoer와 export를 이용하여 패키지를 주고받는 패키지의 상위 개념입니다. - 차이점 둘 다 하나의 기능을 가지고 소프트웨어의 재사용하기 위해 사용됩니다. 의미는 비슷하지만 모듈은 구조의 최소 단위, 정적인 구조를 가지고 컴포넌트는 런타임에 독립적으로 배포되고 실행되는 단위입니다. ※ 런타임 : 컴파일이 완료된 이후 사용자에 의해 응용프로그램이 동작되..
컴퓨터 기초 5 ALU - 연산한 결괏값, 플래그를 내보냅니다. - 계산을 하기 위해서는 피연산자, 수행할 연산이 필요합니다. - 레지스트를 통해 피연산자를 받고 제어장치로 수행할 연산을 알려주는 제어 신호를 받아들입니다. - 연산을 수행한 결과는 특정 숫자, 문자가 될 수 있고 메모지 주소가 될 수 있습니다. - 이 결과 값은 메모리에 저장되지 않고 레지스터에 저장됩니다. - 레지스터에 저장되는이유로 CPU가 메모리에 접근하는 경우 프로그램의 속도가 저하되어 레지스터에 우선 저장됩니다. - ALU는 연산 결과에 대한 추가적인 정보를 내보내야 하고 이를 플래그라 합니다. ALU 플래그 - '연산의 결과는 음수', 연산 결과를 담을 레지스터보다 큰 경우 '결괏값이 너무 크다'라는 등 추가 정보를 내보냅니다. - 대표적으로..
스프링 기초 3 메타 데이터 데이터의 대한 속성정보이고 데이터의 대한 데이터로 하위 레벨 데이터를 설명, 기술하는 데이터입니다. 어노테이션 자바 소스 코드에 추가하여 사용할 수 있는 메타 데이터의 일종입니다. 프로그램 실행 관점에서 프로그램이 처리할 메인 데이터가 아닌 실행 과정에서 데이터를 어떻게 처리할 것 인지 알려주는 서브 데이터라고 볼 수 있습니다. 보통 @ 기호를 앞에 붙여서 사용됩니다. JDK 1.5 버전 이상에서 사용 가능하고 클래스 파일에 임베디드 되어 컴파일러에 의해 생성된 후 자바 가상 머신에 포함되어 작동됩니다. 용도 1. 코드 문법 에러 체크 2. 코드 자동 생성 정보 제공 3. 런타임 시 특정 기능 실행 정보 제공 종류 표준 : 자바가 기본적으로 제공 메타 : 어노테이션을 위함 사용자 정의 : 사..

728x90
반응형