본문 바로가기

반응형

컴퓨터 구조론( MIPS )

(17)
명령어 : 컴퓨터 언어 8 ( feat. MIPS 어셈블리 코드 예시 ) 한참을 열심히 달려왔네요. 저만 달려 왔나요? 이번 글에서는 C 코드를 보여드리고 해당하는 부분을 코딩해 보며 마무리 하겠습니다. void swap( int v [], int k ) { int temp; tmep = v[k]; v[k] = v[k+1]; v[k+1] = temp; } void sort ( int v[], int n) { int i, j; for ( i =0 ; i=0 && v[j] > v[j+1]; j -=1) { swap(v,j); } } } 프로시저 swap의 MIPS 어셈블리 코드 swap : sll $t1, $a1, 2 # reg $t1 = k*4 add $t1, $a0, $t1 # reg $t1 = v + (k*4) lw $t0, 0($t1) # reg $t0 (temp) = v..
명령어 : 컴퓨터 언어 7 ( feat. 동기화, 번역, 실행) 안녕하세요. 개발자 WH 입니다. 이번 글은 병렬성과 동기화에 대한 글입니다. 시작해보도록 할게요. 병렬성과 명령어 : 동기화 테스크가 서로 독립적일 때는 병렬처리가 쉽지만 테스크들이 얽혀있어, 새로운 값을 어떤 테스크가 쓰게 된다면, 복잡해지게 되죠. 이런 상황에서는 특정 테스크가 언제까지 쓰기를 마쳐야 하는지를 알아야 다른 테스크들이 안전하게 읽을 수 있게 되는데, 이를 알기 위해서는 동기화가되어야 합니다. 즉 이런 동기화가 되지 않으면, 이벤트가 일어나는 순서에 따라 프로그램의 결과가 바뀌는 상황이 오는 데 이런 상황을 데이터 경쟁 관계라 합니다. 컴퓨팅에 있어서 동기화 메커니즘은 일반적으로 사용자 수준 소프트웨어 루틴에서 제공 됩니다. 물론 이 소프트웨어 루틴들은 하드웨어가 제공하는 동기화 명령을..
명령어 : 컴퓨터 언어 6 ( feat. 주소 지정 및 방식 ) 안녕하세요. WH 입니다. 이번 글에서는 32비트 상수를 지원하는 방법과 분기 명령어나 점프 명령서에서 사용되는 명령어 주소의 최적화에 대허서 알아볼게요. 아니 그걸 왜 알아야 되요? 편한 경우가 많으니까요! 불편함 속에서 편함을 찾아보자구요 32비트 수치 피연사자 프로그램에서 사용되는 상수는 대체로 작죠. 뭐 쓰는 숫자는 대게 2^16승 정도면 대략 표현이 될거에요. 그런데 그보다 큰 수를 쓸 때는 상위 16비트에 lui( load upper immediate ) 명령어에 ori ( 논리 연산자 )를 사용하면 쉽게 만들수 있답니다. 논리 연산자에 대해 기억이 나지 않는다면 아래 글을 참조해 주세요. 2022.02.07 - [컴퓨터 구조론( MIPS )] - 명령어 : 컴퓨터 언어 3 명령어 : 컴퓨터 ..
명령어 : 컴퓨터 언어 5 안녕하세요. 개발자 WH 입니다. 컴퓨터 구조론에 대해 정리하며 올리며, 저 역시 리뷰되는 좋은 시간인 것 같네요 이번 글은 프로시저에 대한 글입니다. 프로시저( procedure ) - 프로시저는 소프트웨어에서 추상화를 구현하는 방법인데요. 즉 프로시저나 함수는 이해하기 쉽고 재사용이 가능하도록 프로그램을 구조화 하는 방법 중 하나입니다. 큰 덩어리를 부분 부분 나누어 프래그래머가 해당 부분에 집중할 수 있게 해주죠. 프로시저에 값을 보내고 결과를 받아오는 일을 하는 것이 바로 인자 ( parameter )인데요. 프로그램의 다른 부분 및 데이터와 프로시저 사이의 인터페이스 역할을 한답니다. 프로그램이 프로시저를 실행할 데 아래의 6가지 단계를 거칩니다. 1. 프로시저가 접근할 수 있는 곳에 인수를 넣..
명령어 : 컴퓨터 언어 4 안녕하세요. WH 입니다 컴퓨터 구조 명령어 관련 벌써 4번 째 글이네요. 어디까지 쓸지 얼마나 쓸지는 아직 잘모르겠습니다만, 자세히 알려드리려고 노력해보겠습니다 판단을 위한 명령어 프로그래밍 언어에 if 문장으로 판단 기능을 표현하는데요. MIPS 에서는 어떻게 구현되어있는지 볼까요? 조건문 beq register1, register2, L1 bnq register1, register2, L2 beq는 branch if equal을 뜻하고 bne는 branch if not equal을 뜻한답니다. 이 두가지가 조건부 분기라 하는데요. ( conditional branch ) 예시를 보면서 이해해 볼게요 예시> i 와 j는 $s3 $s4 에 a, b, c 는 $s0, $s1, $s2에 해당한다고 가정해봅..
명령어 : 컴퓨터 언어 3 안녕하세요. WH 입니다. 지난 번 글까지해서 산술 연산자에 대한 내용까지 알아보았는데요, 내용이 기억나지 않으시면 아래 글을 참조하시길 바랍니다. 2022.02.07 - [컴퓨터 구조론( MIPS )] - 명령어 : 컴퓨터 언어 1 명령어 : 컴퓨터 언어 1 안녕하세요. WH입니다. 적은 분들이지만, 제 글을 읽어주시는 분들이 생겨났네요. 정기적으로 찾아오시는 분들은 아니지만, 그 적은 분들을 위해서라도 열심히 꾸준히 써보겠습니다. 오늘은 명 developer-wh.tistory.com 2022.02.07 - [컴퓨터 구조론( MIPS )] - 명령어 : 컴퓨터 언어 2 명령어 : 컴퓨터 언어 2 안녕하세요. WH 입니다. 지난 글에 이어서 다시 정리해보도록 할게요 지난 글 내용이 기억나지 않으신다면,..
명령어 : 컴퓨터 언어 2 안녕하세요. WH 입니다. 지난 글에 이어서 다시 정리해보도록 할게요 지난 글 내용이 기억나지 않으신다면, 아래 내용을 참조해주세요 2022.02.07 - [컴퓨터 구조론( MIPS )] - 명령어 : 컴퓨터 언어 1 명령어 : 컴퓨터 언어 1 안녕하세요. WH입니다. 적은 분들이지만, 제 글을 읽어주시는 분들이 생겨났네요. 정기적으로 찾아오시는 분들은 아니지만, 그 적은 분들을 위해서라도 열심히 꾸준히 써보겠습니다. 오늘은 명 developer-wh.tistory.com 상수 또는 수치 피연산자 상수를 생각하는 경우는 생각보다 많은데요, 대체로 메모리의 다음 원소를 가리키는 것이 대표적 예라 할 수 있습니다. 적재 명령을 활용해서 상수가 저장되 있는 메모리에서 상수를 읽어 오는 방법이 있고, immed..
명령어 : 컴퓨터 언어 1 안녕하세요. WH입니다. 적은 분들이지만, 제 글을 읽어주시는 분들이 생겨났네요. 정기적으로 찾아오시는 분들은 아니지만, 그 적은 분들을 위해서라도 열심히 꾸준히 써보겠습니다. 오늘은 명령어(instruction)와 명령어 집합(instruction set)에 대해 알아보려고 합니다. 컴퓨터에게 일을 시키려면 하드웨어가 알아듣게 말해야 겠죠? 그 언어를 기계어라고 하며, 기계어 역시 언어는 단어와 문장으로 이뤄질텐데 단어는 instruction에 문장은 instruction set에 해당합니다. 자 천천히 시작해보겠습니다. 컴퓨터 구조론을 왜 알아야 할까.. 그 이유는 전 글을 참조해주시길 바랍니다 2022.01.31 - [컴퓨터 구조론( MIPS )] - 컴퓨터 구조론-기초 1( feat. 왜 배워야 ..