Hi Mahmood, When you instantiate a component array (e.g., L1-D cache), you need to specify its width. For example, SCALE_WITH_SYSTEM_WIDTH will be 16 in case of a 16-CPU simics checkpoint. When you multiply by 1, this means that the width of the component array will be 16.
Regarding the difference between Pull and Push. When you use Push ports, the component will send information by pushing them to a PushOutput port which is connected to a PushInput of another component. When you use Pull ports, the component will send information by putting them to a PullInput which is connected to a PullOutput of another component. You use "push", >> and "pull", << respectively. The Stalled port of components such as uArch, uFetch, v9Decoder, FetchAddressGenerator is used in the multithreaded simulator and they are connected to the corresponding ports of the component MTManager. Regards, -Stavros. ________________________________________ From: Mahmood Naderan [[email protected]] Sent: Wednesday, July 06, 2011 8:26 AM To: simflex Subject: Some questions Hi 1- What does (...SCALE_WITH_SYSTEM_WIDTH, MULTIPLY, 1); mean in FLEXUS_INSTANTIATE_COMPONENT_ARRAY ? 2- What is the difference between PushInput and PullInput? Also PushOutput and PullOutput? It is easy to understand PushInput and PullOutput 3- some components has DYNAMIC_PORT_ARRAY( PullOutput, bool, Stalled). However "stalled" is not wired in simulator. Is it a special thing? When should I use that? Thanks // Naderan *Mahmood;
