Recen progress R93088 李清新. Recent status – about hardware design Finishing the EPXA10 JPEG2000 project. Due to the DPRAM problem can’t be solved by me,

Slides:



Advertisements
Similar presentations
COMP375 Computer Architecture and Organization Senior Review.
Advertisements

Part IV: Memory Management
Jason Howard. Agenda I. How to download robotc II. What is tele-op used for? III. How to build a basic tele-op program IV. Getting the robot to drive.
1 Starting a Program The 4 stages that take a C++ program (or any high-level programming language) and execute it in internal memory are: Compiler - C++
Pipeline transfer testing. The purpose of pipeline transfer increase the bandwidth for synchronous slave peripherals that require several cycles to return.
CMPT 300: Operating Systems I Dr. Mohamed Hefeeda
1 CS 106, Winter 2009 Class 4, Section 4 Slides by: Dr. Cynthia A. Brown, Instructor section 4: Dr. Herbert G. Mayer,
Operating Systems High Level View Chapter 1,2. Who is the User? End Users Application Programmers System Programmers Administrators.
A look at interrupts What are interrupts and why are they needed in an embedded system? Equally as important – how are these ideas handled on the Blackfin.
PC To GT Program Load Shachar Rosenberg Alex Normatov Technion - Digital Lab.
Architectural Support for Operating Systems. Announcements Most office hours are finalized Assignments up every Wednesday, due next week CS 415 section.
Multiprocessing Memory Management
I/O Hardware n Incredible variety of I/O devices n Common concepts: – Port – connection point to the computer – Bus (daisy chain or shared direct access)
Memory Management 1 CS502 Spring 2006 Memory Management CS-502 Spring 2006.
CS 300 – Lecture 23 Intro to Computer Architecture / Assembly Language Virtual Memory Pipelining.
CS-3013 & CS-502, Summer 2006 Memory Management1 CS-3013 & CS-502 Summer 2006.
Recap – Our First Computer WR System Bus 8 ALU Carry output A B S C OUT F 8 8 To registers’ input/output and clock inputs Sequence of control signal combinations.
©Brooks/Cole, 2003 Chapter 7 Operating Systems Dr. Barnawi.
CS533 - Concepts of Operating Systems
CSCE 430/830 A Tutorial of Project Tools By Dongyuan Zhan Feb. 4, 2010.
Software Development and Software Loading in Embedded Systems.
Chapter 13: I/O Systems I/O Hardware Application I/O Interface
NS Training Hardware. Memory Interface Support for SDRAM, asynchronous SRAM, ROM, asynchronous flash and Micron synchronous flash Support for 8,
Shell and Flashing Images Commands and upgrades. RS-232 Driver chip – ST3232C Driver chip is ST3232C Provides electrical interface between UART port and.
Lecture 12 Today’s topics –CPU basics Registers ALU Control Unit –The bus –Clocks –Input/output subsystem 1.
System Resources INFO1119 (Fall 2012).
Chocolate Bar! luqili. Milestone 3 Speed 11% of final mark 7%: path quality and speed –Some cleverness required for full marks –Implement some A* techniques.
AT91RM9200 Boot strategies This training module describes the boot strategies on the AT91RM9200 including the internal Boot ROM and the U-Boot program.
I/O Systems I/O Hardware Application I/O Interface
GBT Interface Card for a Linux Computer Carson Teale 1.
Recall: Three I/O Methods Synchronous: Wait for I/O operation to complete. Asynchronous: Post I/O request and switch to other work. DMA (Direct Memory.
Computer Architecture Lecture10: Input/output devices Piotr Bilski.
Block1 Wrapping Your Nugget Around Distributed Processing.
ICS – Software Engineering Group 1 GeneralTime Proposal Status at SNS and Ideas for EPICS base David Thompson Sheng Peng Kay-Uwe Kasemir.
The Functions of Operating Systems Interrupts. Learning Objectives Explain how interrupts are used to obtain processor time. Explain how processing of.
Configurable, reconfigurable, and run-time reconfigurable computing.
Main Memory CS448.
Interrupts By Ryan Morris. Overview ● I/O Paradigm ● Synchronization ● Polling ● Control and Status Registers ● Interrupt Driven I/O ● Importance of Interrupts.
Jump to first page One-gigabit Router Oskar E. Bruening and Cemal Akcaba Advisor: Prof. Agarwal.
The Three C’s of Misses 7.5 Compulsory Misses The first time a memory location is accessed, it is always a miss Also known as cold-start misses Only way.
PROJECT - ZYNQ Yakir Peretz Idan Homri Semester - winter 2014 Duration - one semester.
Lecture 12: Reconfigurable Systems II October 20, 2004 ECE 697F Reconfigurable Computing Lecture 12 Reconfigurable Systems II: Exploring Programmable Systems.
1 CSE451 Architectural Supports for Operating Systems Autumn 2002 Gary Kimura Lecture #2 October 2, 2002.
AT91 Memory Interface. 2 Features –Up to 8 programmable chip select lines –Remap Command allows dynamic exception vectors –Glue-less for both 8-bit and.
Lecture 1: Review of Computer Organization
1 Lecture 1: Computer System Structures We go over the aspects of computer architecture relevant to OS design  overview  input and output (I/O) organization.
Assoc. Prof. Dr. Ahmet Turan ÖZCERİT.  What Operating Systems Do  Computer-System Organization  Computer-System Architecture  Operating-System Structure.
Review of Computer System Organization. Computer Startup For a computer to start running when it is first powered up, it needs to execute an initial program.
Implementation of Embedded OS Lab3 Porting μC/OS-II.
1 of 14 Lab 2: Formal verification with UPPAAL. 2 of 14 2 The gossiping persons There are n persons. All have one secret to tell, which is not known to.
Interrupts and Exception Handling. Execution We are quite aware of the Fetch, Execute process of the control unit of the CPU –Fetch and instruction as.
Asymmetric FPGA-loaded hardware accelerators for FPGA- enhanced CPU systems with Linux Performed by:Avi Werner William Backshi Instructor:Evgeny Fiksman.
1 of 14 Lab 2: Design-Space Exploration with MPARM.
CPIT Program Execution. Today, general-purpose computers use a set of instructions called a program to process data. A computer executes the.
DATE S. S.. Sandstone The sandstone carries out the following tasks: 1. Set up target platform environment, 2. Load a bootable image into memory, 3. Relinquish.
CSCI/CMPE 4334 Operating Systems Review: Exam 1 1.
Chap. 4 ARM Boot Loader Internals. 2 S3C2500 ARM940T Core module ARM9TDMI CoreIC.
Topic 2: Hardware and Software
Chapter 8: Main Memory.
Key Terms By: Kelly, Jackson, & Merle
IB Computer Science Topic 2.1.1
AT91RM9200 Boot strategies This training module describes the boot strategies on the AT91RM9200 including the internal Boot ROM and the U-Boot program.
AT91 Memory Interface This training module describes the External Bus Interface (EBI), which generatesthe signals that control the access to the external.
Processor Fundamentals
I/O Systems I/O Hardware Application I/O Interface
Operating Systems Chapter 5: Input/Output Management
Chapter 2: Operating-System Structures
Chapter 2: Operating-System Structures
Chapter 13: I/O Systems.
Presentation transcript:

Recen progress R93088 李清新

Recent status – about hardware design Finishing the EPXA10 JPEG2000 project. Due to the DPRAM problem can’t be solved by me, I decide to write a AHB slave. I started by rewrite the accumulator project. I connect a memory compiler produced RAM on the AHB bus, and add some control logic to control the accumulator. It works. Under this architecture, it is easy to replace the accumulator with DWT. If I have three AHB slave, there will be some problems. The AHB is a pipelined protocol, which separate the address phase and data phase. There may be a situation that master is waiting data from slave1 and sending address to slave2 at the same time. To decide which slave can grant the READY bus and when to pass the control to another slave needs some understanding about the bus protocol.

Recent status – about software(1) The simplified booting flow is described below 1. By default, FLASH memory is mapped at 0x0000_ Running the megawizard produced code in FLASH 3. After setup the SRAM, copy the booting codes to the SRAM and resume the rest of the booting process 4. Jump to _start label. By experiment, the _start label is located at 0x0000_0000. I think there should be a code copy or memory remap which is done by booting code. The first 8 address is ARM interrupt vector location. The codes below _start are used to setup software environment. After, the code will jump to our main function which is located at 0x0000_8000. The problem the scanf fuction will fail may be that memory is not enough. This can be solved by not using function from stdio. To implement scanf function, we must have _read function which is like a device driver. Scanf provide a more user friendly API for programmer. Without scanf function, we still can read something from UART.

Recent status – about software(2) To use the SDRAM for our software program, the binding is a problem. There are three kinds of binding, compile time,link time, execution time. In windows system, we have page tables. Programs can always start at 0x0000_0000 and there won’t be any problem. In our development board, we don’t include a OS and we don’t have page table. So we have to bind our software program at link time, and put it to the propose location then jump to the address. To run our software program in SDRAM, we have to solve two problems. First, how to bind the software to an address we assigned? Second, how to load the software from the host computer and put it to the proper memory address. I think these functionality is providded by a bootloader, like redboot.

Recent status – about FPGA I don’t have any idea about the FPGA problem. I will try to solve it by configure the FPGA ourselves, not using the megawizard.

Recent understanding about cycle accurate and timing accurate (1) After discuss with Yider and the coware trainer, I get some picture about the cycle accurate and timing accurate. Timing accurate : This is mentioned in my presentation 4/11. The difference between this with not timing accurate is show in the graph. Not timing accurate : once B receive the data from A, and B finish it job, it won’t synchronize the execution time. Timing accurate : everytime data exchange, it will synchronize timing. Not Timing accurate Timing accurate A B extra waiting

Recent understanding about cycle accurate and timing accurate (2) Cycle accurate : the time needed to perform a task is correct. Compared with none cycle accurate approach, there may be a situation that an easy task can run 1 ns in hardware but run 100ns in hardware simulator. Software can do a lot of things in 100 ns but software can’t do many things in 1ns. And this is the problem. Yider and I consider that if we use proper synchronization protocol, there won’t be a functional problem, but the performance estimation may be a big problem. According to Coware’s trainer, the problem that none cycle accurate will have is the performance estimation. If we use none cycle accurate co-simulation method to test our architecture. We can’t find the problem in our architecture because the simulation result is not correct.

Recent understanding about cycle accurate and timing accurate (3) Comparing the three method,cycle accurate, timing accurate, no timing Timing accurate seems to have it’s own value, since it can reflect the architecture performance and it have the faster execution speed, but the quality is a problem. Cycle accurate have the best quality but the slowest execution speed. If it is a big design, the simulation speed is still too high. But if we don’t use a bus with cycle, we can’t connect a RTL level ( systemC or HDL) component to it. No timing is the fastest. We can use it to test functionality but we can’t use it to improve architecture. A proper approach is that we start at no timing co-simulation. The refine it to cycle accurate or timing accurate. Take SystemC for example. Initially, systemC is a cycle based simulator, and now it is an event based simulator. If timing accurate can have good estimation quality, then it is better to use timing accurate.

About Luke’s work Yider and I have read Luke’s paper and the source code of expert template for many times, but we have some problems to run the flow. First, we can’t run Luke’s TLM or RTL level design in our computer. We can run any other SystemC design in our computer. We follows the steps from systemC user guide in systemC website. It may be an one-line problem, but we have no idea about it now. Second, we can’t build the ecos tool chain. Yider and I follow the steps from ecos website but we all fail when we try to open configtool. We can’t build any ecos program right now.