1
코러스 IPC 메시지를 수신하여 스택의 길이가 0 이상인지를 검사하는 제 1 단계와, 상기 제 1 단계의 검사 결과 스택의 길이가 0 이상일 경우 스택의 길이를 길이 변수에 저장하고, 오프셋 값을 0, 돌아올 위치 정보 B를 플래그 변수에 저장하는 제 2 단계와, 상기 제 2 단계를 수행한 후 현재 오프셋 값에 오프셋 값을 저장하고 현재 메시지 길이 값에 메시지 길이 값을 저장하는 제 3 단계와, 상기 현재 오프셋 값이 오프셋 값과 메시지 길이 값의 합과 같은지를 검사하는 제 4 단계와, 상기 제 4 단계의 검사 결과 현재 오프셋의 값이 오프셋 값과 메시지 길이 값의 합과 같지 않을 경우, 현재 메시지 길이 값이 44 이상인가를 검사하는 제 5 단계와, 상기 제 5 단계의 검사 결과 현재 메시지 길이 값이 44 이상일 경우 메시지 길이 영역의 값을 15, 차이 비트를 0, 엑센크 네트워크 인터페이스 프레임 헤더의 오프셋 영역, 스택 길이 영역, 데이터 길이 영역, 메시지 저장 메모리 식별자 영역에 현재 오프셋 값, 스택의 길이, 데이터의 길이, 원격 메모리 식별자 값을 저장하는 제 6 단계와, 상기 제 6 단계를 수행한 후 현재 메시지 길이와 현재 오프셋 크기를 갱신한 후 메시지를 엑센트 네트워크 인터페이스를 통해 수신 노드로 전송하고 상기 제 4 단계로 천이하는 제 7 단계와, 상기 제 5 단계의 검사 결과 현재 스택의 길이가 44 미만일 경우, 메시지 길이 영역에는 현재의 스택 길이보다 큰 4의 배수중 최소값을 4로 나눈 후 1을 더한 값을 저장하고, 차이 비트에는 0부터 3의 값중에서 현재 스택 길이가 4로 나눠지기 위해 필요한 값을 저장한 후 엑센크 네트워크 인터페이스 프레임 헤더의 오프셋 영역, 스택 길이 영역, 데이터 길이 영역, 메시지 저장 메모리 식별자 영역에 현재 오프셋 값, 스택의 길이, 데이터의 길이, 원격 메모리 식별자 값을 저장하는 제 8 단계와, 상기 제 8 단계를 수행한 후 현재 오프셋 값을 오프셋 값과 메시지 길이 값의 합과 같게 하고, 메시지를 엑센트 네트워크 인터페이스를 통해 수신 노드로 전송하여 상기 제 4 단계로 천이하는 제 9 단계와, 상기 제 4 단계의 검사 결과 현재 오프셋 값이 오프셋 값과 메시지 길이 값의 합과 같을 경우 돌아갈 위치 정보를 검사하는 제 10 단계와, 상기 제 10 단계의 검사 결과 돌아갈 위치 정보가 B일 경우 상기 제 1 단계의 검사 결과 스택의 길이가 0보다 작을 경우로 이동하는 제 11 단계와, 상기 제 11 단계를 수행한 후 수신한 데이터의 길이가 0보다 큰지를 검사하는 제 12 단계와, 상기 제 12 단계의 검사 결과 데이터의 길이가 0보다 클 경우 데이터의 길이를 길이 변수에 저장하고, 현재 오프셋의 값을 스택의 길이로, 돌아올 위치 정보 C를 플래그 변수에 저장한 후 상기 제 3 단계 내지 제 11 단계를 순차적으로 수행하는 제 13 단계와, 상기 제 12 단계의 검사 결과 데이터 길이가 0보다 작을 경우와 상기 제 10 단계의 검사 결과 돌아갈 위치 정보가 C일 경우 종료하는 제 14 단계를 포함하여 이루어진 것을 특징으로 하는 고속병렬컴퓨터의 엑센트 네트워크 인터페이스에서 코러스 아이피씨 메시지의 분해 방법
|