728x90
반응형

전체 글 226

[Computer Architecture] Division for computers

Division 알고리즘 partial remainder > divisor -> quotient bit = 1, remanider = remainder - divisor partial remainder quotient bit = 0 다음 비트로 이동 Divisor는 처음에는 맨 왼쪽 값을 쓰다가 점점 오른쪽으로 이동하면서 빼야하기 때문에 128bit 뺀 결과가 양수면 Quotient에 1을 넣고, 음수면 1을 넣는다. 왼쪽으로 shift하는데, 음수가 나왔을 때는 다시 원상 복귀한다. N-bit Quotient와 Remainder를 처리하기 위해서는 N+1번 반복해야 한다. (multiplication은 N번 반복이었음) Iter 0 3비트 연산이기에 Remainder, Divio..

[Computer Architecture] Multiplication for computers

Integer Multiplication m bits x n bits -> 계산결과는 (m+n) bit Binary rules 0이면 0을 쓴다. (0 x multiplicand) 1이면 multiplicand를 그대로 쓴다. (1 x multiplicand) 1 clock per step -> ~ 200 clocks per multiply add보다 multiply는 frequency가 낮다. multiply는 Amdahl's law에 따르면 uncommon case이다. Multiplication - 1 Multiplier를 오른쪽으로 shift해가면서 하드웨어는 Multiplier의 가장 오른쪽 bit를 하나씩 검사하고 그 값에 따라 제어합니다. ex) Multiplier 1001 -> 가장 맨 오..

[Computer Architecture] RISC-V overflow

Overflow 한정된 컴퓨터 자원으로 표현하기에는 너무 큰(너무 작은) 결과값이 나왔을 때 발생 양수와 음수를 더하는 과정에서는 오버플로우가 발생하지 않습니다. 같은 부호를 가지는 수끼리의 뺄셈에서는 오버플로우가 발생하지 않습니다.(양수 빼기 양수, 음수 빼기 음수) * 양수든 음수든 해당 자원의 크기만큼만 표현할 수 있기에 예를 들어, 양수 빼기 양수해서 엄청나게 작은 음수가 나와서 오버플로우가 발생하는 상황은 나오지 않음. 범위 안의 양수 - 양수 이기 때문입니다. A - B일 때, A가 0이면 오버플로우가 발생할 수 있습니다. A - B = -B인데 만약 signed 4bit 연산이었다고하면 -8~7까지 표현가능하기 때문에 A = 0, B = -8 이었다고하면 A - B = 8이 되므로 signe..

[Computer Architecture] Arithmetic Logic Unit(ALU, 산술 논리 장치)

ALU 구조 inputs 32-bit input A 32-bit input B 2-bit operation selector S : ALU가 할 수 있는 동작 중 무슨 동작을 할지 선택 총 4개의 동작으로 이루어져있기에 2bit로 표현 가능 Outputs 32-bit result R 동작 (S값에 따라서) S가 0b00일 때, R = A + B (addition) S가 0b01일 때, R = A & B (bitwise AND) S가 0b10일 때, R = A | B (bitwise OR) S가 0b11일 때, R = A ^ B (bitwise XOR) ALU Design Splitting Bits 각 bit를 split해서 별도의 ALU Gate에 넣고 나중에 다시 recombine하는 방식으로 디자인함으..

1주차 test

Q1 ssh, binary file, 디렉토리 구조, 정렬 1. ssh 접속 $ ssh test1@ssh.knock-on.org ... Are you sure you want to continue connecting (yes/no/[fingerprint])? yes ... test1@5f882d6040af:~$ 2. 힌트 확인 test1@a7c4fa4b85a6:~$ ls HINT test1@a7c4fa4b85a6:~$ cat HINT Some binaries appear to print flags.. 3. /bin와 같은 binary가 담기는 디렉토리에 flag가 있음을 예상 하지만 /bin 뿐만 아니라, /sbin, /usr/bin, /usr/sbin, /usr/local/bin, /usr/local/..

Problem Solving 2024.02.27

[삼성전자 DX 알고리즘] 삼국지게임

// main.cc #ifndef _CRT_SECURE_NO_WARNINGS #define _CRT_SECURE_NO_WARNINGS #endif #include #define CMD_INIT 100 #define CMD_DESTROY 200 #define CMD_ALLY 300 #define CMD_ATTACK 400 #define CMD_RECRUIT 500 ///////////////////////////////////////////////////////////////////////// extern void init(int N, int mSoldier[25][25], char mGeneral[25][25][11]); extern void destroy(); extern int ally(char mM..

심볼릭 링크(Symbolic Link)

심볼릭 링크(Symbolic Link) 파일 시스템에서 다른 파일이나 디렉토리를 가리키는 특별한 종류의 파일 기본적으로 원본 파일이나 디렉토리의 경로를 포함하고 있으며, 이를 통해 심볼릭 링크를 통해 해당 파일이나 디렉토리에 액세스 가능 원본 파일의 내용을 변경할 수 있습니다. 심볼릭 링크는 하드 링크와는 달리 파일 시스템의 다른 위치에 있는 파일을 가리키기 때문에 원본 파일과 독립적으로 존재하며, 파일 시스템이 다른 위치로 이동해도 링크는 유효하게 유지됩니다. 하드 링크: 하드 링크는 원본 파일과 동일한 파일의 다른 이름입니다. 즉, 원본 파일과 하드 링크는 같은 데이터를 공유하며, 어느 한 쪽이 변경되면 다른 쪽도 변경됩니다. 이는 마치 같은 책을 두 개의 다른 표지로 갖고 있는 것과 비슷합니다. 만..

Linux 2024.02.25

SSH (Secure Shell), NC (Netcat)

프로토콜(protocol)네트워크 상에서 데이터 통신을 하기 위한 규칙과 규약의 집합네트워크에서 컴퓨터들 간의 통신은 데이터를 보내고 받는 과정이며, 이러한 과정에서 어떤 식으로 데이터를 주고받을 것인지에 대한 규칙을 정의예를 들어, HTTP는 웹 브라우저와 웹 서버 간의 통신을 위한 프로토콜이며, SMTP는 이메일을 보내고 받기 위한 프로토콜데이터를 주고받는 과정에서의 특정한 순서, 형식, 오류 처리 등을 정의하여 안정적이고 효율적인 통신을 가능하게 합니다. Telnet원격 로그인 서비스를 제공하는 프로토콜원격 시스템에 로그인하여 커맨드 라인 인터페이스를 통해 명령을 실행 가능 데이터가 암호화되지 않기 때문에 중간에서 가로채어 볼 수 있기에 보안상으로 비추천됩니다.기본적으로 23번 포트 사용# Teln..

Linux 2024.02.25

UFW(Uncomplicated Firewall)

IP와 Port IP(Internet Protocol) IP는 컴퓨터 네트워크에서 통신에 사용되는 프로토콜 네트워크에 연결된 각 기기를 식별하는 데 사용 IPv4, IPv6 주소 형식을 주로 사용 포트 (Port) 컴퓨터 내에서 특정 프로세스나 서비스를 식별하는 데 사용 네트워크 통신은 송신자와 수신자 간의 IP 주소뿐만 아니라 포트 번호도 포함하여 이루어짐 포트 번호는 0에서 65535까지의 범위 Well-known ports: 0에서 1023번까지의 포트로, 널리 알려진 서비스가 할당 HTTP (포트 80), HTTPS (포트 443), SSH(포트 22) Registered ports: 1024에서 49151번까지의 포트로, 등록된 서비스가 할당 Dynamic or private ports: 491..

Linux 2024.02.24

VIM과 shell script

VIM Vi IMproved (Vi 기능을 확장하고 향상시킨 편집기) Vi 편집기의 향상된 버전 (Vi는 초기 Unix 시스템에서 사용되었던 텍스트 편집기. 현재도 여러 곳에서 기본적인 편집기로 사용) vim 파일이름: 파일 열기 Normal 모드, Insert 모드, Visual 모드, Command-Line 모드로 구성 Normal 모드: Vim이 시작되거나 다른 모드에서 Esc(또는 Ctrl+[)를 눌러서 돌아올 때의 기본 모드 텍스트를 이동하고 복사, 붙여넣기, 삭제, 검색 및 기타 편집 작업을 수행 가능 일반 모드에서의 키 바인딩 h, j, k, l: 좌, 하, 상, 우로 커서를 이동합니다. x: 현재 커서 위치의 문자를 삭제합니다. dd: 현재 행을 삭제합니다. yy: 현재 행을 복사합니다. ..

Linux 2024.02.24
728x90
반응형