2011-09-10 9 views
13

모든 수준이 다른 다중 수준 컴퓨터를 생각해보십시오. 각 레벨에는 그 레벨보다 m 배나 강력한 명령어가 있습니다. 즉, 한 레벨 r 명령어는 m 레벨 r - 1 명령어의 작업을 수행 할 수 있습니다. 레벨 1 프로그램이 실행될 때 k 초가 필요한 경우, n 레벨 r 명령어를 가정 할 때 동등한 프로그램이 레벨 2, 3 및 4에서 소요되는 시간 단일 r + 1 명령을 해석해야합니까?컴퓨터 논리 문제

이것은 내가 생각해 낸 해결책입니다. 누구든지 확인하거나 의견을 쓸 수 있습니까?

이것은 내가 다가올 해결책입니다. 누구든지 확인하거나 의견을 쓸 수 있습니까?

Q 레벨 1 명령들을 포함하는 소정의 프로그램의 실행 t (Q)을 계산하기 위해
Level (r)  Level-1 Instructions (m)   Time 
4    m^3        t(q) ==(m^3q+n+nm+nm^2) (k/q) 
3    m^2      t(q) =(m^2q+n+nm)(k/q) 
2    m        t(q) = (mq+n)(k/q) 
1    1        t(q) = k 

우리는 계정에 도시 된 각 레벨의 R 지시를 나타내는 레벨 1 명령들의 기하 급수적 증가 (모두 수행해야 프로그램이 실행되는 각 계층에 대한 해석에 필요한 레벨 -1 명령의 추가 수 (nm^(r-1)로 표시됨)와 비교합니다. 하위 레벨의 해석에 사용되는 추가 레벨 -1 명령어도 r> 2에 대한 최종 공식에 추가해야합니다. 마지막으로, 각 방정식에 대해 (k/q)에 의해 계산 된 1 레벨 -1주기의 실행 시간으로 사용 된 레벨 -1 명령어의 총 수를 곱하여 프로그램이 실행되는 데 걸리는 시간 (초)을 결정할 수 있습니다.

면책 조항 :이 숙제는 과제가 이미 전달 된 것입니다. 단순히이 문제의 의미를 파악할 수 없으며 실제로 이해하고 싶습니다.

+0

힌트 : 열의 레이블이 Level, NumInstructionsInProgram, InstructionsPerSecond, TotalTime으로 표시된 테이블을 만듭니다. 첫 번째 행은 1, N, N/k, k가됩니다. 행을 계속해서 채우십시오. –

+0

문제가 모든 명령어가 동일한 수의 클럭을 사용할지 여부를 지정하지는 않습니다. – Novikov

+0

필자는 테이블을 채우는 중이다. 각 변수가 의미하는 의미와 테이블 값에 포함시킬 수있는 방법의 의미에 문제가있다. – MarathonStudios

답변

0

문제는 레벨 1에서의 시간 K 부 걸리면 간단히 K/m 단위는 받아 버리는 것을 진술 두 번째 레벨에서 마찬가지로 ...

0

그냥 재귀 함수입니다 : 이제

t(q, r) = q*k if r == 1 
t(q, r) = q*t(m, r-1) + t(n, r-1) 

설명 :

This is obvious since it was stated in the question (I parameterized k as the elementary unit, k is the time for one level 1 instruction): 
t(q, r) = q*k if r == 1 

The amount of time it takes to execute a function with q r-1 instructions 
t(q, r) = 
      q times the amount of the time it takes for m level r-1 instruction 
      q*t(m, r-1) 
         plus the time it takes for n level r-1 instructions 
         + t(n, r-1) 
0

내가 작업 정의가 내가 다른 제정신 방법이 표시되지 않는 때문에 경우에 완료 모르겠어요 그것을 단순화하는 것보다 해결할 수 있습니다.

그래서 여기가 내가 생각 것 몇 가지 있습니다 :

  1. t (Q, 1) = K (우리가 찾는 임무된다 t (Q, R)) => t (1,1) = q/k, 왜? 왜냐하면 우리는 시간이 지침 유형보다는 지침의 수에만 의존한다고 가정하기 때문에 현실적으로이 작업을 해결할 수없는 경우가 있습니다. 그러한 경우 q는 숫자처럼 보일 수 없으며 다른 명령어 세트가 명령어 수에 따라 더 적거나 많은 시간을 차지한다고 가정 할 수 없습니다. 결론적으로이 독서 과제에 대한 나의 독서와 관련하여 시간은 오직 지시의 수와 관련이 있습니다.
  2. 프로그램이 한 수준 'r'에서 네이티브이면 다른 수준의 n 명령을 사용하여 해석합니다 (네이티브로 만듭니다). 여기에 제시된 작업 정의에는 레벨 r + 1 명령어 만 해석하도록하는 항목이 없습니다. 사실 우리가 레벨 1부터 시작하기 때문에, "n 레벨 r 명령어는 단일 r + 1 명령어를 해석해야합니다."내가 위에서 말한 것을 가정 할 수 없다면 꽤 쓸모가 없을 것입니다.지침의 수는 크게
(현실 세계에서와 같이) 달라질 수 있기 때문에 항상 Q 레벨 Y의 지침을 변환해야합니다 해석 된 후에
  • 또한 Q의 레벨 X 지침, 기타 바이스 우리는 또 다른 수준의 실행 시간을 알 수 없다 3 개 가정 중 하나가 잘못된 경우, 당신이 대답은 쓸모 있지만, 더 많은 것 알 수없는 기능의 단지 방정식이 될 것이다, 그래서 알 수없는 새로운 기능을 도입 할 필요가

    q=number of level one program instructions 
    t(q, r)=time necessary to execute q **level 1** instructions on level r comp 
    t(1, r)=time necessaty to execute one instruction on level r comp 
    t(1, 1)=time necessary to execute one instruction on level 1 comp 
    t(q, 1)/m^(r-1)=time to execute q **native** instructions on level r comp 
    
    t(q, 1)=k 
    t(1, 1)=k/q 
    t(q,r)=(time to interpret q non-native instructions/convert them to native) + (time to actually execute the code) 
    t(q,r)=t(qn, 1)/m^(r-1) + t(q, 1)/m^(r-1) 
    t(q,r)=(time to execute qn native instructions) + (time to execute q native instructions) 
    t(q,r)=nt(q, 1)/m^(r-1) + t(q, 1)/m^(r-1) 
    t(q,r)=(n+1)t(q, 1)/m^(r-1) 
    t(q,r)=(n+1)k/m^(r-1) 
    

    :

    그래서 여기가 이러한 전제 조건과 답변입니다 이 하나보다 쓸모 없어. 이 사람은 당신이 문제에 대한 확인 방법으로 해결 한 방법과 유사한 작업을 볼 수있는 대학에 연습 볼 필요가 Btw는 :

    가 올바른지 단지 예뻐이다.

  • 1

    나는 이것이 너무 복잡하다고 생각합니다. 문제는 각 레이어가 위의 레이어보다 m 배 빠릅니다. 따라서 레이어 2는 시간당 1/m, 레이어 1/m * 1/m 등으로 프로그램을 완료합니다. 따라서, 최종 식 막이다

    톤 (Q) = K/(m ** Q)