Difference between revisions of "CSC270 Homework 9 2016"
(Created page with "--~~~~ ---- <bluebox>This homework can be worked on in pairs, and should be submitted Thursday 4/14/16 before 11:55 p.m.</bluebox> <br /> =Problem 1= <br /> By now you shouldn...") |
|||
(6 intermediate revisions by the same user not shown) | |||
Line 5: | Line 5: | ||
=Problem 1= | =Problem 1= | ||
<br /> | <br /> | ||
− | By now you shouldn't be surprised that in this problem I will ask you to combine hardware and software to solve a particular problem, and also use your knowledge of both to figure out the peak performance of | + | By now you shouldn't be surprised that in this problem I will ask you to combine hardware and software to solve a particular problem, and also use your knowledge of both to figure out the peak performance of your design. Once you have done this a few times, then you will discover that it is actually quite easy to figure out how fast some operations can be done in a computer, once you know the processor, its speed, and the way the I/O works. |
− | + | ||
− | Assume that we have a device or sensor that constantly generates 8 bits of data. These 8 bits are fed into a simple system of 8 tristate drivers that connect to the data bus of a 1 MHz 6811 processor. The | + | Assume that we have a device or sensor that constantly generates 8 bits of data. These 8 bits are fed into a simple system of 8 tristate drivers that connect to the data bus of a 1 MHz 6811 processor. The enable signal of the tristate buffers is controlled by the enable output (Y4') of a 3-to-8 decoder connected to the most-significant bits of the address bus, similar to what we have done in class for the past few lectures/labs. |
− | + | ||
− | When the processor executes a "LDAA 8000", the 8 bits are read from the | + | When the processor executes a "LDAA 8000", the 8 bits of sensor data are read from the tristate buffers and stored in the Acca accumulator. |
− | + | ||
− | We want to be able to capture 1000 bytes of this sensor and store these samples into an array in memory. The array starts at address | + | We want to be able to capture 1000 bytes of this sensor and store these samples into an array in memory. The array starts at an address of your choice. We want to know how fast we can sample the sensor data and gather 1000 bytes of values in memory. |
− | In other words, write a software solution in 6811 assembly that will have | + | In other words, write a software solution in 6811 assembly that will have these features: |
# it will read 1000 bytes from the input port, | # it will read 1000 bytes from the input port, | ||
− | # it will store these 1000 | + | # it will store these 1000 samples into an array of 1000 bytes in RAM, and |
− | # it will stop after 1000 bytes are read and return to the monitor (JSR C000). | + | # it will stop after 1000 bytes are read and it will return to the monitor (JSR C000). |
− | + | ||
+ | Indicate how long (in processor cycles, or in uS, or mS, whatever unit is appropriate) it will take your design to sample the 1000 bytes and store them in memory. | ||
+ | |||
As for Homework 8, the grade will include a component that will be based on how fast your solution is. The closest your solution is to the fastest time possible, the higher the grade. | As for Homework 8, the grade will include a component that will be based on how fast your solution is. The closest your solution is to the fastest time possible, the higher the grade. | ||
<br /> | <br /> | ||
+ | Submit a pdf with your answer on Moodle. | ||
<br /> | <br /> | ||
<br /> | <br /> |
Latest revision as of 11:53, 11 April 2016
--D. Thiebaut (talk) 07:56, 7 April 2016 (EDT)
Problem 1
By now you shouldn't be surprised that in this problem I will ask you to combine hardware and software to solve a particular problem, and also use your knowledge of both to figure out the peak performance of your design. Once you have done this a few times, then you will discover that it is actually quite easy to figure out how fast some operations can be done in a computer, once you know the processor, its speed, and the way the I/O works.
Assume that we have a device or sensor that constantly generates 8 bits of data. These 8 bits are fed into a simple system of 8 tristate drivers that connect to the data bus of a 1 MHz 6811 processor. The enable signal of the tristate buffers is controlled by the enable output (Y4') of a 3-to-8 decoder connected to the most-significant bits of the address bus, similar to what we have done in class for the past few lectures/labs.
When the processor executes a "LDAA 8000", the 8 bits of sensor data are read from the tristate buffers and stored in the Acca accumulator.
We want to be able to capture 1000 bytes of this sensor and store these samples into an array in memory. The array starts at an address of your choice. We want to know how fast we can sample the sensor data and gather 1000 bytes of values in memory. In other words, write a software solution in 6811 assembly that will have these features:
- it will read 1000 bytes from the input port,
- it will store these 1000 samples into an array of 1000 bytes in RAM, and
- it will stop after 1000 bytes are read and it will return to the monitor (JSR C000).
Indicate how long (in processor cycles, or in uS, or mS, whatever unit is appropriate) it will take your design to sample the 1000 bytes and store them in memory.
As for Homework 8, the grade will include a component that will be based on how fast your solution is. The closest your solution is to the fastest time possible, the higher the grade.
Submit a pdf with your answer on Moodle.