Study(10)
-
[컴퓨터구조] Hardware/Software Interface
책과 PPT에 Hardware/Software Interface 라고 부록? 처럼 되어있는 부분이 있다. 그 중 알아 두어야 할것 같은Bytes Addressing, Aligment restriction, Ediannes 에 대해 적어보려 한다. MIPS에선 32개의 register를 가지고 연산을 한다 각 register는 32bit로 구성되어 있다. 각 register = 32bit = 1data 단위 를 word라 한다. Memory에 저장된 data를 register에 가져와야 한다 이때 어떤 단위로 접근하여 data를 가져오는지에 따라 addressing 이 달라진다. 위 같은 Memory 주소에서 data를 가져올때 파란색 주소처럼, word 단위로 가져오는걸 word addressing이라 ..
2021.07.05 -
[컴퓨터구조] Instruction: Langauge of Computer(1)
컴퓨터 하드웨어에게 일을 시키려면 하드웨어가 알아들을 수 있는 언어로 말을 해야한다. 우리가 코드를 작성하여 프로그램을 실행 시키는 것도 컴퓨터에게 프로그래밍 언어로 말을 하고, 그 대답을 화면으로 보는것 과 같다. 일반적인 프로그래밍 언어 C,Java 와 같은 고급 언어는 Compiler를 통해 기계어나 Assembly 언어로 바뀌게 되어 하드웨어 위에서 동작하게 된다. 참고로 기계어는 CPU 제조사 마다 모두다른 구조를 가지고 있다. 자세한 설명은 다음에 하기로 하자. Assembly 언어는 기계어와 1대1 대응 되는 언어 이다. 따라서 제한된 종류의 CPU만 이해할 수 있다. 이번 포스팅에선 MIPS라는 Assembly 언어를 이용하여 컴퓨터 구조에 대해 공부해 보려 한다. 앞으로 나오는 Instr..
2021.07.05 -
[컴퓨터구조] Introduction(1)
우선 컴퓨터 구조란? 어떤것인지 위키백과에 나온 정의부터 보며 포스팅을 시작하려 한다. 컴퓨터 구조(computer architecture)는 컴퓨터공학 에서 컴퓨터 시스템의 기능(functionality), 조직(organization), 구현(implementation)에 대한 법칙과 방법을 통칭한다. 또 다른 정의로는 컴퓨터 구조는 명령어 집합 구조(Instruction set architecture, ISA), 마이크로아키텍처(Microarchitecture) 설계, 논리 설계 및 구현을 의미한다. 여기서 ISA란 Instruction set architecture 실행 가능한 명령으로 된 구조. 란 뜻으로 Hard ware 와 lowest - level software(Machine langua..
2021.07.01 -
[C++] 다형성,virtual 함수
다형성이란? 네이버 지식 백과에서는 다형성(polymorphism)이라는 단어는 원래 '여러 개의 형태를 갖는다'라는 의미의 그리스어에서 유래했다. 또 사전에서 찾아보면 poly(하나 이상), morph(형태)가 합성된 단어로 '하나 이상의 형태'를 뜻한다. [네이버 지식백과] 다형성 (쉽게 배우는 소프트웨어 공학, 2015. 11. 30., 김치수) 이렇게 나와있다. 음.. 하지만 이런게 프로그램을 만들때 왜 필요할까?? 간단히 동물들의 울음 소리를 출력하는 프로그램을 만든다 가정해보자, 우선 각 동물들의 class를 만들고 특성에 맞는 울음소리를 출력해주는 함수 speak() 를 가진다. class Cat { private: string name; public: Cat(const string& nam..
2021.03.03 -
[C++] std::cin, getline()
일반적으로 C++에선 cin과 getline()으로 문자열을 입력 받는다. 이글에서 1.cin 으로 std::string 에 문자열을 받는 방법 2.getline 으로 std::string 에 문자열을 받는 방법 3. 둘의 차이와 유의사항, 해결법 (cin.ignore) std::cin cin 은 기본적으로 버퍼에서 공백' '으로 구분하여 변수에 넣어준다. string str1; cin >> str1; string str2; cin >> str2; //cin >> str1 >> str2; // 입력을 공백 으로 구분하여 각 변수에 들어감 위 코드에서 하나씩 받을때, 같이 받을때 똑같이 공백으로 구분되어 들어간다. getline() 헤더에 포함되어있는 getline() 함수는 버퍼에서 '\n'(개행문자) ..
2021.02.22 -
[C++]R-value Reference,move Sementics
R-value Reference,move Sementics C++ 에서는 R-value Reference 를 지원한다. 다음과 같이 &&기호를 이용하여 사용할 수 있다. #include using namespace std; void doSomething(int& lef) { cout
2021.02.20