program_model
Other Models:
• Message-Passing: similar to the tasks and channels model. • Shared-memory:
foundry
bridge
storage
• Data parallel:
A+B, 2*A, ...
• Other models:
• One or more tasks which could execute concurrently. • A task encapsulates a sequential program, local memory and interface to its environment (inports and out-ports). • Four additional function of a task: send and receive messages, create new tasks and terminate. • Channels: message queues connecting in-port/out-port pairs. • The mapping (tasks to physical processors) does not affect the semantics of a program.
Asynchronous Communication:
Communication Design hecklist:
• Do all tasks perform about the same number of communication? • Does each task communication only with a small number of neighbors? • Are communication operations able to proceed concurrently? • Is the computation associated with different tasks able to proceed concurrently?
(7)
(6)
(5)
(4)
(3)
(2)
(1)
Global Communication:(2)
• Divide and conquer:
2n −1
∑
i =0
=
2n −1 −1
∑
i =0
+
2n −1 i =2n −1
∑
Unstructured and Dynamic Communication:
• Finite element method with irregular mesh: different vertices have varying number of neighbors. • Finite element method with adaptive mesh: mesh is refined as the simulation evolves.
Increasing Granularity:
• Surface-to-volume effects: The communication requirements of a task are proportional to the surface of the subdomain while the computation requirements are proportional to the subdomain’s volume. • Replicating computation: We can trade off replicated computation for reduced communication and/or execution time. • Avoiding communication: A set of tasks that can not execute concurrently can be agglomerated.
Mapping:
Mapping problem is NPcomplete. Strategies:
Partition:
• Objective:
– Define a large number of small tasks (fine-grained decomposition). – Divide both computation and data.
• Techniques:
– Domain decomposition – Functional decomposition
Reducing software Engineering costs:
• Less code change. • Less data redistribution.
Agglomeration Design Checklist:
If the agglomeration • reduces the communication costs by increasing locality? • replicates computation? • replicates data? • yields tasks with similar computation and communication? • eliminates opportunities for concurrent execution? Does the number of tasks still scale with problem size? Can the number of tasks be reduced still further? Have you considered the cost of the modifications required to the sequential code?
Communication Patterns:
• Local/global: each task communicates with small/large set of other tasks. • Structured/unstructured: communication pattern is regular/irregular. • Static/dynamic: identity of communication partners is fixed/changed over time. • Synchronous/asynchronous: communication with/without cooperation of the partner.
– Dynamic creation of tasks and channels.
• Parameter study
– Embarrassingly parallel problem
Parallel Algorithm Design Methodology--PCAM
• Partition: to explore the opportunities for parallel execution. • Communication: to determine the communication required to coordinate task execution. • Agglomerate: to evaluate the structure defined by first two stages w.r.t. Performance and cost. And to the necessary adjustment. • Mapping: To assign each task to a processor.
Example 1.1 (DBPP)
• Bridge construction: A bridge is to be assembled from girders being constructed at a foundry.
foundry (a)
bridge
foundry
bridge
(b)
Tasks and channels:
Preserving Flexibility:
The ability to create a varying number of tasks is critical to:
– Portability and scalability – Overlapping computation and communication. – To provide greater scope for mapping strategies.
Programming Models:
• Sequential programming:
– Sequences of instructions.
• Arithmetic operations • address of datum and instruction
– Memory space
• Parallel programming:
Partition Design Checklist:
• Is the number of tasks defined greater than the number of processors? • Does your partition avoid redundant computation and storage requirements? • Are tasks of comparable size? • Does the number of tasks scale with problem size? • Have you identified several alternative partitions?
NVIDIA 动态并行ISM文档说明书
Introduction to Dynamic Parallelism Stephen JonesNVIDIA CorporationImproving ProgrammabilityDynamic Parallelism Occupancy Simplify CPU/GPU Divide Library Calls from Kernels Batching to Help Fill GPU Dynamic Load Balancing Data-Dependent ExecutionRecursive Parallel AlgorithmsWhat is Dynamic Parallelism?The ability to launch new grids from the GPUDynamicallySimultaneouslyIndependentlyCPU GPU CPU GPU Fermi: Only CPU can generate GPU work Kepler: GPU can generate work for itselfWhat Does It Mean?CPU GPU CPU GPU GPU as Co-ProcessorAutonomous, Dynamic ParallelismData-Dependent ParallelismComputationalPower allocated toregions of interestCUDA Today CUDA on KeplerDynamic Work GenerationInitial GridStatically assign conservativeworst-case gridDynamically assign performancewhere accuracy is requiredFixed GridCPU-Controlled Work Batching CPU programs limited by singlepoint of controlCan run at most 10s of threadsCPU is fully consumed withcontrolling launchesCPU Control Threaddgetf2 dgetf2 dgetf2CPU Control Threaddswap dswap dswap dtrsm dtrsm dtrsmdgemm dgemm dgemmCPU Control ThreadMultiple LU-Decomposition, Pre-KeplerCPU Control ThreadCPU Control ThreadBatching via Dynamic ParallelismMove top-level loops to GPURun thousands of independent tasksRelease CPU for other workCPU Control ThreadCPU Control ThreadGPU Control Threaddgetf2 dswap dtrsm dgemm GPU Control Thread dgetf2 dswap dtrsm dgemm GPU Control Threaddgetf2dswapdtrsmdgemmBatched LU-Decomposition, Kepler__device__ float buf[1024];__global__ void dynamic(float *data) {int tid = threadIdx.x; if(tid % 2)buf[tid/2] = data[tid]+data[tid+1]; __syncthreads();if(tid == 0) {launch<<< 128, 256 >>>(buf); cudaDeviceSynchronize(); }__syncthreads();cudaMemcpyAsync(data, buf, 1024); cudaDeviceSynchronize(); }Programming Model BasicsCode ExampleCUDA Runtime syntax & semantics__device__ float buf[1024];__global__ void dynamic(float *data) {int tid = threadIdx.x; if(tid % 2)buf[tid/2] = data[tid]+data[tid+1]; __syncthreads();if(tid == 0) {launch<<< 128, 256 >>>(buf); cudaDeviceSynchronize(); }__syncthreads();cudaMemcpyAsync(data, buf, 1024); cudaDeviceSynchronize(); }Code ExampleCUDA Runtime syntax & semanticsLaunch is per-thread__device__ float buf[1024];__global__ void dynamic(float *data) {int tid = threadIdx.x; if(tid % 2)buf[tid/2] = data[tid]+data[tid+1]; __syncthreads();if(tid == 0) {launch<<< 128, 256 >>>(buf); cudaDeviceSynchronize(); }__syncthreads();cudaMemcpyAsync(data, buf, 1024); cudaDeviceSynchronize(); }Code ExampleCUDA Runtime syntax & semanticsLaunch is per-threadSync includes all launches by any thread in the block__device__ float buf[1024];__global__ void dynamic(float *data) {int tid = threadIdx.x; if(tid % 2)buf[tid/2] = data[tid]+data[tid+1]; __syncthreads();if(tid == 0) {launch<<< 128, 256 >>>(buf); cudaDeviceSynchronize(); }__syncthreads();cudaMemcpyAsync(data, buf, 1024); cudaDeviceSynchronize(); }CUDA Runtime syntax & semanticsLaunch is per-threadSync includes all launches by any thread in the blockcudaDeviceSynchronize() does not imply syncthreadsCode Example__device__ float buf[1024];__global__ void dynamic(float *data) {int tid = threadIdx.x; if(tid % 2)buf[tid/2] = data[tid]+data[tid+1]; __syncthreads();if(tid == 0) {launch<<< 128, 256 >>>(buf); cudaDeviceSynchronize(); }__syncthreads();cudaMemcpyAsync(data, buf, 1024); cudaDeviceSynchronize(); }Code ExampleCUDA Runtime syntax & semanticsLaunch is per-threadSync includes all launches by any thread in the blockcudaDeviceSynchronize() does not imply syncthreadsAsynchronous launches only__device__ float buf[1024];__global__ void dynamic(float *data) {int tid = threadIdx.x; if(tid % 2)buf[tid/2] = data[tid]+data[tid+1]; __syncthreads();if(tid == 0) {launch<<< 128, 256 >>>(buf); cudaDeviceSynchronize(); }__syncthreads();cudaMemcpyAsync(data, buf, 1024); cudaDeviceSynchronize(); }Code ExampleCUDA Runtime syntax & semanticsLaunch is per-threadSync includes all launches by any thread in the blockcudaDeviceSynchronize() does not imply syncthreadsAsynchronous launches only(note bug in program, here!)__global__ void libraryCall(float *a,float *b, float *c) {// All threads generate datacreateData(a, b);__syncthreads();// Only one thread calls library if(threadIdx.x == 0) {cublasDgemm(a, b, c);cudaDeviceSynchronize();}// All threads wait for dtrsm__syncthreads();// Now continueconsumeData(c);} CPU launcheskernelPer-block datagenerationCall of 3rd partylibrary3rd party libraryexecutes launchParallel useof resultSimple example: QuicksortTypical divide-and-conquer algorithmRecursively partition-and-sort dataEntirely data-dependent executionNotoriously hard to do efficiently on Fermi3 2 6 3 9 14 25 1 8 7 9 2 58 3 2 6 3 9 1 4 2 5 1 8 7 9 2 58 2 1 2 1 2 36 3 94 5 8 7 9 5 8 3 6 3 4 5 8 7 58 1 2 2 2 3 3 4 1 5 6 7 8 8 9 95 eventually...Select pivot valueFor each element: retrieve valueRecurse sort into right-handsubsetStore left if value < pivotStore right if value >= pivotall done?Recurse sort into left-hand subset NoYes__global__ void qsort(int *data, int l, int r) {int pivot = data[0];int *lptr = data+l, *rptr = data+r;// Partition data around pivot valuepartition(data, l, r, lptr, rptr, pivot);// Launch next stage recursively if(l < (rptr-data))qsort<<< ... >>>(data, l, rptr-data); if(r > (lptr-data))qsort<<< ... >>>(data, lptr-data, r); }。
名模计划使用方法
名模计划使用方法The supermodel program is a unique method that enhances the physical and mental well-being of those who participate. 这个名模计划是一个独特的方法,可以增强参与者的身心健康。
Through a combination of physical fitness, nutrition, and mental wellness coaching, participants are able to achieve their best selves both inside and out. 通过结合体能训练、营养和心理健康辅导,参与者能够在内外兼修中达到最佳状态。
The program aims to empower individuals to feel confident and strong in their own bodies, while also promoting a healthy and balanced lifestyle. 这个计划旨在赋予个人自信和身体力量,并促进健康平衡的生活方式。
Participants in the program receive personalized coaching and support to help them reach their goals and overcome any obstacles in their way. 参与者在该计划中获得个性化的辅导和支持,以帮助他们实现目标并克服道路上的任何障碍。
The supermodel program is not just about physical appearance, but about overall well-being and self-empowerment. 这个名模计划不仅仅是关于外表,而是关于整体健康和自我赋能。
Creo配置文件
那么配置文件(有些书也叫映射文件)又包括哪些呢?下面介绍常用的几个config.pro——系统配置文件,配置整个creo系统gb.dtl——工程图配置文件,你可以先简单的理解为设置箭头大小,文字等标注样式。
format.dtl——工程图格式文件(可以简单的理解为图框)的配置文件。
table.pnt——打印配置文件,主要设置工程图打印时的线条粗细、颜色等。
A4.pcf——打印机类型配置文件,主要设置工程图打印出图时的比例、纸张大小等。
config.win.1——(1为流水号,每改一次自动增加)操作界面、窗口配置文件,比如说我们可以在这个文件中设置模型树窗口的大小,各种图标、工具栏、快捷键在窗口的位置等等。
Tree.cfg——模型树配置文件,主要设置在模型树窗口显示的内容、项目。
当然还会有更多,这里不再一一介绍。
补充说明的是:以上提到的文件名命名,后缀名是必须的,文件名有些可以自定义,我没有全部试。
一般来讲按系统默认的名称就可以了也没必要自定义文件名。
除了config.pro以外,其它配置文件都要在config.pro中指定才有效。
虽然有这么多种配置文件,但不是所有配置文件都是必须要有的,有些可以视个人情况不设置。
如何使这么多的配置文件都起作用呢?稍后讲解,请继续往下看……二、系统配置文件config.pro(一)config.pro文件在哪里?我们可以先在D盘新建一个文件夹peizhi也可以不创建(注:这个位置是随意的,只为了方便后面的讲解)在creo中依次打开文件——选项-——配置编辑器,就会弹出下面这个窗口。
2012-8-30 10:01 上传下载附件(64.19 KB)第一次打开时,这个窗口内可能是空的!然后点击“添加”填入menu_translation值填入both,如图2012-8-30 10:13 上传下载附件(37.38 KB)点确定,这时窗口中就会多了一行。
再点右下角“导入/导出”——将所有选项导出到配置文件,如下图所示2012-8-30 10:30 上传下载附件(42.37 KB)将文件保存在桌面或peizhi,点OK,再“确定”关闭选项设置窗口,我们就会看到一个config.pro文件。
WRFV3.1用户手册之中文版(非常难得之翻译版)
Chapter 1: Overview翻译:by 澳洲的牛牛 laiwf由于译者水平有限,其中一定存在翻译不妥的地方,希望大家能帮忙指正IntroductionThe Advanced Research WRF (ARW) modeling system has been in development for the past few years. The current release is Version 3, available since April 2008. The ARW is designed to be a flexible, state-of-the-art atmospheric simulation system that is portable and efficient on available parallel computing platforms. The ARW is suitable for use in a broad range of applications across scales ranging from meters to thousands of kilometers, including:•Idealized simulations (e.g. LES, convection, baroclinic waves)•Parameterization research•Data assimilation research•Forecast research•Real-time NWP•Coupled-model applications•Teaching简介Advanced Research WRF (ARW)模式系统在过去的数年中得到了发展。
最近公布了第三版,从2008年4月开始可供使用。
ARW是灵活的,最先进的大气模拟系统,它易移植,并且有效的应用于各种操作系统。
英语答案
第五单元●名词解释1. system specification 系统规格说明2. unit testing 单位(或单元、部件)测试3. software life cycle 软件生命周期(或生存周期)4. system validation testing 系统验证测试5. evolutionary development process 演化开发过程6. simple linear model 简单线性模型7. program unit 程序单元8. throwaway prototype 抛弃式原型9. text formatting 正文格式编排,文本格式化10. system evolution 系统演变11. 系统设计范例system design paradigm12. 需求分析与定义requirements analysis and definition13. 探索式编程方法exploratory programming approach14. 系统文件编制system documentation15. 瀑布模型waterfall model16. 系统集成system integration17. 商用现成软件commercial off-the-shelf (或COTS)software18. 基于组件的软件工程component-based software engineering(CBSE)19. 软件维护工具software maintenance tool20. 软件复用software reuse●翻译课文软件过程比较复杂,而且像所有其他的智能和创造性过程一样,依靠人们作出决定和判断。
由于需要判断和创造性,使软件过程自动化的尝试只取得了有限的成功。
计算机辅助软件工程工具可支持软件过程的某些活动。
然而,至少是在未来几年内,不可能实现更广泛的软件过程自动化,使软件能够接替参与软件过程的工程师来从事创造性设计。
XC12英文用户指南说明书
MICRO Hi-Fi SYSTEM ] USER GUIDE 3want to play.station sound effect.SLEEP Turn on or offMP3 Info while a file isimpressions. To change the functions, you can scroll throughthem and select one. (see Listening to the CDs)once to repeat the track REPEAT twice to CD. The MICRO Hi-Fi SYSTEM ] USER GUIDE 5MICRO Hi-Fi SYSTEM ] USER GUIDE 7Listen to cassette tapes - more you can doTo Play Fast backward or ForwardAfter pressing bb /BB during playback, or stop, press B at a point you want.Listening to the radio - more you can doLook for radio stations automaticallyPress - TUNING +(o r TUN.- /TUN.+) for more than 0.5 second. The tuner will scan automatically and stop when it finds a radio station.Delete all the saved stationsPress and hold PROGRAM MEMORY or PROGRAM/MEMO for two sec-onds. “CLEAR” shows. Press STOP CLEAR (or x )to erase all the saved stations.Choose a ‘preset number’for a radio stationSelect a station you want by pressing - TUNING +or TUN.- /TUN.+.Press PROGRAM MEMORY or PROGRAM/MEMO ,the station flashes.Press - PRESET +or PRESET/FOLDER to select the preset number you want. Press PROGRAM MEMORY or PROGRAM/MEMO to save it.Improve poor FM receptionPress MODE/RIF on the front panel . This will change the tuner from stereo to mono and usually improve the reception.See information about your radio stations - OPTIONALThe FM tuner is supplied with the Radio Data System (RDS) facility. This shows the letters RDS on the display, plus information about the radio sta-tion being listened to. Press RDS on the front panel several times to view the information.PTY - Programme Type, such as News, Sport, Jazz Music.RT - Radio Text, the name of the radio station.CT - Time Control, the time at the location of the radio station.PS - Programme Service name, the name of channel.You can search the radio stations by programme type by pressing- PRESET +. The display will show the last PTY in use. Press - PRESET +one or more times to select your preferred programme type. Press and hold - TUNING +. The tuner will search automatically. When a station is found the search will stop.MICRO Hi-Fi SYSTEM ] USER GUIDE 9Use your player as an alarm clockPress and hold TIMER for two seconds. Each function, TUNER, CD, USB (in the USB supplied models)flashes for two seconds. Press SET when the function you want to be woken by is showing.If you choose TUNER you will be shown the stations you have saved as presets. Use - TUNING + to select the station you want, then press SET . You will be shown the ON TIME display. This is where you set the time you want the alarm to go off. Use - TUNING +to change the hours and minutes and SET to save.You will then be shown the OFF TIME display. This is where you set the time you want the function to stop. Use - TUNING +to change the hours and minutes and press SET to save.Next you will be shown the volume (VOL) you want to be woken by. Use - TUNING +to change the volume and SET to save. Switch the system off. The clock icon shows that the alarm is set.When the system is turned off you can check the time the alarm is set for by pressing TIMER . You can also turn the alarm on and off by pressing TIMER . To set the alarm to go off at a different time, switch the system on and reprogramme following the same steps as initially.About MP3/WMAMP3/WMA Disc compatibility with this unit is limited as follows:• Sampling Frequency : 8 - 48 kHz (MP3), 32 - 48 kHz (WMA)•Bit rate : 8 - 320 kbps (MP3), 48 - 320 kbps (WMA)• CD-R physical format should be “ISO 9660”• If you record MP3/WMA files using the software which cannot create a FILE SYSTEM, for example “Direct-CD” etc., it is impossible to playback MP3 files. We recommend that you use “Easy-CD Creator”, which creates an ISO 9660 file system.•File names should be named using 30 letters or less and mustincorporate “.mp3”,“.wma” extension e.g. “********.MP3” or “********.WMA”•Do not use special letters such as “/ : * ? “ < >”etc.•Even if the total number of files on the disc has more than 1000, it will only be shown up to 999.MICRO Hi-Fi SYSTEM ] USER GUIDE 11Designs and specifications are subject to change without notice.。
关于PROE的 Program
应用Pro/PROGRAM进行自动化设计Pro/ENGINEER 中的每一个模型都含一个程序,其中有主要设计步骤和编辑后可当程序用的参数。
通过运行该程序,可按照新的设计规范改变模型。
要进入Pro/PROGRAM 环境,请在“零件”(PART) 或“组件”(ASSEMBLY) 菜单中单击“工具”(Tools)>“程序”(Program)。
"设计"菜单最初只可对存在于模型的设计程序进行访问。
然而,只要编辑程序,就可创建一个包含最近设计指令的文件。
在此处,同一个模型存在两个设计程序,它们是“从模型”(From Model) 和“从文件”(From File)。
成功地在模型中合并设计变化之后,“从文件”(From File) 程序就被删除了,只有“从模型”(From Model) 程序可用。
在“从文件”(From File) 设计程序存在的情况下,“设计”(WHICH DESIGN) 菜单显示两个命令:∙从模型(From Model) - 检索在模型中建立的设计程序。
∙从文件(From File) - 从名为assemblyname.als或partname.pls 的现有文件中为模型检索设计。
关于Pro/PROGRAM Header 程序起始语句 Input 输入语句Relations关系语句Model Section模行语句 Massprops .质量语句编辑设计后会出现两个选项1(从模型)将放弃已编辑的设计2(自文件)将继续编辑已编辑的设计注意:“从模型”(From Model) 反映模型的当前状态,而“从文件”(From File) 则包含上一编辑期间所添加的所有新指令。
1 Add input statements.增加输入语句Parameter_Name Parameter_Type“pro mpt that you want displayed in the message window”2 Write relations.写关系3 Edit the model section.编辑模型部分Pro/ENGINEER 中的每一个模型都含一个程序,其中有主要设计步骤和编辑后可当程序用的参数。
水文模型大全
Water Rights Analysis Package (WRAP)
GIS Application in Hydrology and Hydraulics
Automated Geospatial Watershed Assessment Tool eCoastal Program BASINS version 4.0 GIS Weasel HAZUS-MH HEC-GeoRAS HEC-GeoHMS MapWindow NHDPlus Append Tool NRCS Geo-Hydro_ArcGIS NRCS Geo-Hydro_ArcView StreamStats Soil and Water Assessment Tool (SWAT)
Environmental Models
Agricultural Non-Point Source Pollution Models (AGNPS 98) Areal Nonpoint Source Watershed Environmental Simulation (ANSWERS)
Continuous Annual Simulation Model (CALSIM) Erosion Productivity-Impact Calculator/ Environmental Policy Integrated Climate (EPIC) Hydrologic Simulation Program-Fortran (HSPF) LOAD ESTimator (LOADEST) One-dimensional Transport with EQuilibrium chemistry (OTEQ) Illinois Least-Cost Sewer System Design Model (ILSD) Illinois Urban Storm Runoff Model (IUSR) Water Quality/Solute Transport (OTIS) Soil Water Assessment Tool (SWAT) Large Scale Catchment Model, formerly CALSIM (WRIMS)
imc_process_model
Administration Manufacturing/ Marketing Finance Human Legal Operations Resources
Stakeholders
Employees Investors Financial community Government Regulators
Community: Customers communicate with each other Connected: Customers communicate with Company in-between purchases Identity: Customers proudly display brand, have an emotional attachment to it Awareness: Brand is included on customer’s
2. Analyze targets and relationships
3. Determine MC objectives
Determine what marketing communication programs should accomplish. Determine which MC functions should be used and to what extent. Choose brand messages and means delivery. Support each strategy with a rationale. Determine what the overall MC budget will be and then how money will be divided among the selected MC functions. Determine when each MC program will begin and end.
FPGA可编程逻辑器件芯片10M04SCE144C7G中文规格书
However, the SMC asserts write data at the start of the setup cycle and removes it at the end of the hold period for each individual write access.CLKOUTAMS(n)/WEDATA/DINWrite Setup 1 CycleWriteAccess3 CyclesWriteHold1 CycleTrans.TURN2 CyclesFigure 10-12: Asynchronous FIFO Write Bus CyclesSMC Programming ModelThe following general guidelines are used for configuring and enabling the SMC interface. Failure to follow these guidelines can lead to erroneous behavior.•In asynchronous page mode, always program SMC_B0CTL.RDYEN to 0.•Enable the ARDY abort counter (the SMC_B0CTL.RDYABTEN bit =1) whenever the SMC_ARDY signal is ena-bled (the SMC_B0CTL.RDYEN is set to 1). This step ensures that the interface does not hang due to erroneous SMC_ARDY signal behavior or erroneous sampling of the SMC_ARDY signal.•Do not program read access time (SMC_B0TIM.RAT), write access time (SMC_B0TIM.WAT), read setup time (SMC_B0TIM.RST), and write setup time (SMC_B0TIM.WST) to 0.•Never program page mode wait-states (SMC_B0ETIM.PGWS) to 0 or 1.•Program the page size bits (SMC_B0CTL.PGSZ) to match the configurations of the flash device connected to the SMC interface.•Select the SMC_B0CTL.RDYPOL bit to be the complement of the WAIT polarity that is configured in the flash device.•In asynchronous SRAM and asynchronous flash modes with SMC_ARDY enabled, and where SMC_B0TIM.RHT, SMC_B0TIM.WHT, SMC_B0TIM.RAT, and SMC_B0TIM.WAT are the read and write hold and access times and SMC_B0ETIM.IT and SMC_B0ETIM.TT are the idle and transition times, ensure that the following conditions are true:•SMC_B0TIM.RHT + SMC_B0ETIM.IT + SMC_B0ETIM.TT≥ 2•SMC_B0TIM.WHT + SMC_B0ETIM.IT + SMC_B0ETIM.TT≥ 2•SMC_B0TIM.RAT≥ 5•SMC_B0TIM.WAT≥ 5SMC Programming Model ADSP-BF70x Blackfin+ Processor Hardware ReferenceCLKOUTSMC_AnSMC_D15-0SMC_AMSnSMC_AOESMC_ARERead Data Read Data Figure 10-3: Asynchronous SRAM Read with IDLE T ransitionProgrammed cycle times are:•SMC_B0TIM.RST = 2 cycles•SMC_B0TIM.RAT = 4 cycles•SMC_B0TIM.RHT = 1 cycle•IDLE transition time = 2 cyclesAt the start of the IDLE transition cycle, the SMC deasserts the SMC_AMS[n] and SMC_AOE signals. The setup period of the second read starts at the end of the IDLE transition cycle with the assertion of the SMC_AMS[n] and SMC_AOE signals and a new address on the address bus.High-Speed Asynchronous SRAM Read BurstThe Fast Asynchronous SRAM Reads, Burst of Four Word figure shows a high-speed asynchronous SRAM read bus cycle. This read bus cycle is typical for SRAM devices with small access times connecting through SCB read bursts,especially for boot purposes.SMC Programmable Timing CharacteristicsADSP-BF70x Blackfin+ Processor Hardware ReferenceCLKOUTNOR_An NOR_CE NOR_ADV NOR_OE NOR_DQ15-0Pre-AccessPre-Setup Read DataFigure 10-7: Asynchronous Flash Read with Pre-Setup and Pre-Access CyclesIn this case, the target SMC bank has been programmed with:•Pre-setup time = 1 cycle•Read setup time = 2 cycles•Pre-access time = 1 cycle•Read access time = 5 cycles•Read hold time = 2 cyclesThe read bus cycle is almost identical to the asynchronous SRAM read bus cycle. The only difference is the behavior of the SMC_AOE signal which the SMC uses as the flash address valid SMC_NORDV signal. The flash address valid SMC_NORDV signal asserts at the start of the setup cycle and deasserts at the end of the setup cycle.The pre-access cycle inserts a one-cycle gap between the deassertion of the flash address valid SMC_NORDV signal and the assertion of the flash read strobe NOR_OE at the start of read access. The SMC also uses asynchronous flash reads with SMC_ARDY enabled for flash devices which use SMC_NORWT in asynchronous mode. In this case, the read bus cycle operation is identical to the asynchronous SRAM with SMC_ARDY enabled except for the SMC_AOE/SMC_NORDV signal behavior.The 32-bit Asynchronous Flash Read figure shows a 32-bit read access to a flash device in asynchronous mode which is split into two 16-bit external memory accesses. For this bank, read setup and read hold are programmed as two cycles whereas the read access time is five cycles. The flash device chip select signal (NOR_CE) remains asserted for the entire duration of both read accesses. NOR_CE is deasserted at the end of the hold period of the second read access. The SMC asserts the SMC_NORDV signal during the setup phase of both read accesses. Read data is latched at the end of the read access period.SMC Programmable Timing Characteristics ADSP-BF70x Blackfin+ Processor Hardware Reference。
