Configuring and Using Shared Memory from a National Instruments VXI//VME Bus Controller
|
|
- Alexandra Osborne
- 5 years ago
- Views:
Transcription
1 Application Note 158 Configuring and Using Shared Memory from a National Instruments VXI//VME Bus Controller Introduction Paul Mueller, Vijay Malhotra This application note discusses configuring and using shared memory in your VXI or VME instrumentation systems and includes code examples and troubleshooting tips. Shared, or dual-ported memory, physically resides on the host VXI/VME controller but can be accessed by different bus masters on the VXI or VME bus. By using shared memory located on your National Instruments VXI/VME controller, you can avoid purchasing expensive dedicated instrument memory modules to store data generated during acquisition, analysis, or waveform generation. There are two options for sharing memory from National Instruments series of VXI/VME controllers: 1. Installing dedicated SIMMs 2. Sharing host memory Both of these will be discussed in separate sections of this application note. Installing Dedicated SIMMs Using this option, you install SIMMs onto a VXI/VME controller and transparently use this memory as if it resided on a VXI/VME device. Once you have configured the controller, the VXI resource manager automatically allocates this memory onto the VXI/VME backplane so that the other VXI/VME instruments in the system can access it. This option is available on the PCI-MXI-2, VXI-MXI-2, VME-MXI-2, VXI-1394 and VXI-1394/G. Note that this option is not available on any embedded VXI/VME controller the Sharing Host Memory section discusses configuring shared memory on an embedded controller. Installing SIMMs onto your VXI/VME controller may require that you modify some jumper/dip switch settings please consult the documentation that was supplied with your controller for more information on this. Once you have installed the SIMMs, you will also need to configure NI-VXI/NI-VISA (the driver level software supplied with all National Instruments VXI/VME controllers) to use this shared memory. Test and Measurement Explorer is used to configure the PCI-MXI-2, VXI-MXI-2, VME-MXI-2, VXI-1394 and VXI-1394/G interfaces on Win 32 platforms (Win 95, Win 98 and Win NT). VXIedit or VXItedit is used on other platforms and for other controllers. Several parameters need to be set in order to use the SIMMs as shared memory. First, the Address Space parameter needs to be set to specify the address space to allocate the memory in (A24 or A32). Up to 16 MB of memory can be addressed in A24 space whereas up to 4 GB can be addressed in A32 space. Note that you can dual port only up to 8 MB in A24 space and up 2 GB in A32 space. Next, you must specify the amount of memory that is to be shared normally this would the same as the amount of RAM installed in the form of SIMMs. Figure 1 shows a PCI-MXI-2 configured to share 8 MB of memory. ni.com and National Instruments are trademarks of National Instruments Corporation. Product and company names mentioned herein are trademarks or trade names of their respective companies A-01 Copyright 2000 National Instruments Corporation. All rights reserved. May 2000
2 Figure 1. 8 MB SIMM Configured in PCI-MXI-2 The VXI resource manager will allocate 8 MB of memory for the PCI-MXI-2 board in the A32 address space in the example shown. This memory will be allocated into two different half windows. You can select the byte order and mapping scheme for each of the half windows independently by setting the advanced options as shown in Figure 2 below. To use the SIMMs, you must set either or both half windows to Onboard memory. You will typically select the same Memory Select option for both half windows. Figure 2. Configuring the Shared Memory Windows Application Note
3 Note You should avoid writing to the first 4 KB of memory allocated by the resource manager because it stores EEPROM configuration settings for the MITE chip. This region is used by all MITE-based VXI/VME controllers. Advanced Configuration Options You can bypass this 4 KB limitation if you configure the shared RAM size to be twice the amount of memory that you actually installed. Consider a VME-MXI-2 with two 32 MB SIMMs installed (for a total of 64 MB) that is allocated in the A32 address space starting at offset 0x Normally, the first 4 KB is reserved for the MITE chip and should be avoided. By setting the shared RAM size to 128 MB (twice the amount installed), you bypass this limitation by accessing the RAM at address = Requested Memory Size/2 + offset. As shown in Figure 3 below, the RAM is mapped to the VXI/VME address space at two different locations. All accesses that start at the address 0x are automatically mapped one-for-one to the installed SIMM while the lower half of the window still has the lower 4 KB reserved for the EEPROM. With this configuration, merely access the RAM at the address = Requested Mem Size/2 + offset. Figure 3. Onboard RAM on the VXI/VME-MXI-2 Mapped to the VXI/VME Bus Sharing Host Memory Another option for setting up shared memory is to dual port RAM installed on the host so that it is mapped onto the VXI/VME bus. With this option, you map up to 4 GB of memory (the maximum that can be addressed by a 32 bit address space) onto the VXI/VME bus. You can use this option by itself, or in conjunction with the option of installing dedicated SIMMs (on controllers that offer both options). National Instruments Corporation 3 Application Note 158
4 Sharing host memory involves using memory that would normally be used for the operating system and for running applications and allocating this memory onto the VXI/VME bus. As such, configuring the host memory so that it can be accessed by VXI/VME bus master involves two steps. 1. Configuring the VXI driver to reserve a block of memory from the operating system. 2. Programming the operating system to allocate the local buffer. Configuring the VXI Driver to Reserve a Block of Memory from the Operating System Test and Measurement Explorer is used to configure PCI-MXI-2 or embedded controller platforms on Win 32 platforms (Win 95, Win 98 and Win NT). VXIedit or VXItedit is used on other operating systems 1. Several parameters need to be set in order to dual port the system memory. First, the Address Space parameter needs to be set to specify the address space to allocate the memory in (A24 or A32). Next, you must specify the Shared RAM size (also referred to as VXI Shared RAM size), which is the amount of memory that will be dual ported onto the VXI/VME bus. Note that only some of this memory is protected from the operating system and that it is possible for a VXI/VME bus master device to overwrite the contents of system memory if you are not careful to avoid regions outside those allocated in your applications. The Reserve Physical Memory (also referred to as Shared RAM Pool Size) parameter indicates the size of physically contiguous memory that is allocated on system startup. This memory is protected from the operating system and cannot be used by any applications. The amount of memory that you reserve sets an upper limit to the amount of memory that can safely be allocated on the VXI/VME bus as is discussed in the Allocating Shared Memory section of this application note. Figure 4 below shows a PCI-MXI-2 configured to dual port 8 MB of memory. 1 MB, which is reserved from the OS at startup, is the maximum amount of memory that can safely be allocated by your program. Figure 4. PCI-MXI-2 Configured to Dual Port up to 8 MB of System Memory 1. Sharing host memory is not an option for NI-VXI on HP-UX systems. Application Note
5 Finally, we need to discuss the settings found in the Advanced section. You should leave all of the configuration settings at their default values as shown in Figure 5 below. In particular, the Memory Select option should be set to System Memory. Allocating Shared Memory Figure 5. Configuring Advanced Options for Sharing Host RAM Both the NI-VXI and NI-VISA driver level software includes functions to allocate/deallocate the shared memory, and to fill and extract data from the shared memory. You can use these function calls in the same manner on all platforms. Because of the uniformity in use, all operating system and hardware-level details are completely transparent. Your application programs are also completely portable between the platforms and controllers (provided they have the ability to dual port, or share host memory). The maximum amount of memory that can be allocated by the functions is equal to the 1 KB less than the amount of memory that was reserved from the operating system (see the note below) almost 1 MB in the example shown in Figures 4-6. This application note includes examples that use the NI-VXI and NI-VISA shared memory functions. These examples are shipped with the driver level software. It is not the intention of this application note to discuss the use of the memory allocation functions in detail because this is covered in the documentation supplied with NI-VXI and NI-VISA. Before examining the examples, let us consider an application where we are using the PCI-MXI-2 board shown in Figures 4 and 5. 8 MB of the operating systems memory is dual ported onto the VXI/VME bus as shown in Figure 6. This memory is allocated from the physical memory that is actually installed on the host (64 MB in Figure 6). Only 1 MB of this memory is reserved from the operating system and so this is the maximum amount of memory (see note below) that we can safely allocate in our application. You also must ensure that you avoid writing to VXI/VME addresses higher than 0x100FFFFF in this example because these addresses are mapped to regions of system memory that may be in use by other applications and/or the operating system running on the host system. Accessing these VXI/VME addresses could lead to a corrupt system. Note A small amount of overhead is associated with the process of allocating memory and so you must reserve at least 1 KB more than the amount of memory you wish to allocate. Thus, to allocate 1 KB of memory, specify at least 2 KB in the Reserve Physical Memory parameter (also referred to as Shared RAM Pool Size on some platforms). Also, the Shared RAM size parameter is typically set to All of System RAM. National Instruments Corporation 5 Application Note 158
6 Figure 6. Mapping System Host Memory on the VXI/VME Bus The upper limit for the VXI address shown in Figure 6 is a specific example and will vary depending on your system configuration settings. Accessing Shared Memory This section of the application note contains sample LabVIEW and C code for accessing and using shared memory. The first example illustrates how to access memory on a SIMM chip. The second set of examples illustrates how to allocate and access shared host memory. Accessing Memory on Dedicated SIMM Chips As discussed in the Installing Dedicated SIMMs section of this application note, many National Instruments controllers provide you with the option of installing SIMMs that are automatically mapped onto the VXI/VME backplane by the VXI resource manager. No special memory allocation functions need to be called once the system has been configured correctly. The only programming consideration is that you should avoid accessing the first 4 KB of memory because this is used to store EEPROM configuration settings. As noted earlier, you can get around the 4 KB limitation by modifying various advanced configuration settings. The resource manager dynamically allocates the memory on the VXI/VME bus. Accessing the shared memory from the host controller is identical to accessing any other address in VXI/VME space. Other bus mastering devices can also read and write to this shared memory. However, the bus-mastering device must be provided with the address space and base address of the shared memory in order to be able to access it. There is no standard way for the bus mastering device to obtain this information and you will need to develop your own protocols for communicating this information. Application Note
7 The example in Figure 7 below illustrates a C VISA program that can be used to access the dedicated shared memory and that can also be used to obtain information relating to the address space and offset of the memory. This information could then sent to another VXI/VME bus mastering device using whatever communication scheme you develop so that it can access the shared memory. /* This code listing does not include variable declarations or error checking routines due to space considerations and will not compile. It serves to show the correct sequence of VISA calls for accessing shared memory installed on a dedicated SIMM chip. The example assumes that the controller has a 1 MB SIMM chip installed and is configured to share 1 MB. */ main() { status = viopendefaultrm (&rm); /* Check status */ status = viopen (rm, "VXI::0", VI_NULL, VI_NULL, &instr); /* Check status */ status = vigetattribute (instr, VI_ATTR_MEM_SPACE, &address_space); /* Check status */ status = vigetattribute (instr, VI_ATTR_MEM_BASE, &base_addr); /* At this point any bus-mastering device can access the shared memory at absolute address = base address + 0x1000 (4 KB) in adress space = address_space. */ /* Write to the shared memory */ status = viout8 (instr, address_space, 0x1000, 0XBEEF); /* Check status */ / *Read from shared memory */ status = viin8 (instr, address_space, 0x1000, &value); /* Check status */ /* Compare values */ if (value!=0xbeef) printf( Error\n ); else printf( Success\n ); /* Close sessions */ viclose(instr); viclose(rm); }/* main */ Figure 7. C NI-VISA Program that Accesses Shared Memory on a Dedicated SIMM Accessing and Allocating Shared Host Memory Sharing host memory requires that you configure the controller to share memory and then make NI-VXI or NI-VISA function calls to allocate and access the memory. The two LabVIEW examples shown in Figures 8 and 9 illustrate the use of both NI-VXI and NI-VISA to allocate and access the memory. National Instruments Corporation 7 Application Note 158
8 Figure 8. LabVIEW NI-VISA Example for Sharing Host Memory Figure 9. LabVIEW NI-VXI Example for Sharing Host Memory Figures 10 and 11 contain similar C examples. Note that on some platforms it is possible to perform a direct pointer dereference to access the VXI/VME shared memory when using the NI-VXI functions in a C-based environment. This results in extremely efficient code because you can avoid the small amount of overhead associated with making a function call. The result of the VXIMemAlloc function determines whether you can use direct pointer dereferencing. It should be mentioned that VISA uses pointer dereferences for the low-level vipeek and vipoke functions if it is able to. Thus, both LabVIEW and C programs that use VISA low-level register access calls will run just as efficiently as a similar application that used NI-VXI and pointer dereferencing. The examples in this application note do not include calls to the low-level register access functions/macros. Both NI-VXI and NI-VISA are shipped with several examples that illustrate the use of these low-level functions and you should refer to those examples to learn how to use these low-level functions. Application Note
9 /**************************************************************/ /*This code listing does not include variable declarations or error checking routines due to space considerations and will not compile. It serves to show the correct sequence of VISA calls for allocating and accessing shared memory. Note that it is assumed that shared memory has been configured in either T&M Explorer or VXI Edit. The general flow of this code is: Open Resource Manager Open a session to LA 0 Allocate the shared memory Use vigetattribute to determine the offset of the shared memory. Use viout16 to write a value into shared memory. Use viin16 to read the value to see if the data was written correctly. Use vimemfree to free the shared memory buffer. Close Visa sessions This example also does not show how to use the ViPeek and ViPoke low-level register access functions/macros. */ /**************************************************************/ main() { status = viopendefaultrm (&defaultrm); /* Error check */ status = viopen (defaultrm, "VXI0::0::INSTR", VI_NULL, VI_NULL, &instr); /* Error check */ size = 0x100; /* This is how much memory we are going to set aside in our local RAM. Even though we have possibly many megs requested in VXI space, we are only going to use x100 bytes. */ status = vimemalloc (instr, size, &offset); /* Error check */ /* Determine in which address space the shared memory is located. */ vigetattribute (instr, VI_ATTR_MEM_SPACE, &addrspace); /* Find base address of our controller so another bus master can access shared memory. The shared memory is accessible at absolute address base +offset */ vigetattribute (instr, VI_ATTR_MEM_BASE, &base); /* write a value into shared memory. */ status = viout16 (instr, addrspace, offset, 0xBEEF); /* Error check */ /* At this point, you can use another bus master to access the shared memory at the Base + Offset. Read back from shared memory */ status = viin16 (instr, addrspace, offset, &value); /* Error check */ /* Compare response with stimulus */ if (value == 0xBEEF) printf ("Value written = value read\nsharing is successful!\n"); else printf ("We wrote 0xBEEF, but read back 0x%hX\n", value); status = vimemfree (instr, offset); //free the allocated memory /* Error check */ status = viclose (instr); status = viclose (defaultrm); } Figure 10. C VISA Example for Sharing Host Memory National Instruments Corporation 9 Application Note 158
10 /*This code listing does not include variable declarations or error checking routines due to space considerations and will not compile. It serves to show the correct sequence of NI-VXI calls for allocating and accessing shared memory. It is assumed that shared memory has been configured in either T&M Explorer or VXI Edit */ main() { size = 0x100; InitVXIlibrary() /* error check */ AllocStat = VXImemAlloc (size, &useraddr, &vxiaddr); /* error check */ /* Can read the shared memory using VXImemcopy and/or direct pointer de-reference. If the Status from VXImemAlloc was 0, you can directly de-reference the pointer. If the Status was 1, you can only access the local buffer by using VXImemCopy. You can also use VXIIn/Out and VXIMove on MITE based platforms */ if ( AllocStat == 0 ) /* can access memory directly */ value = *(UINT16 *)useraddr; //deref the pointer directly else / * need to use VXImemCopy to access shared memory */ { direction = 1; / *move from local RAM to "value" */ size = 2; /* read 1 word. */ Status = VXImemCopy (useraddr, &value, size, direction); /* error check */ } VXImemFree (useraddr); /* free allocated memory */ CloseVXIlibrary(); /* close VXI library */ } Figure 11. C NI-VXI Example for Sharing Host Memory Common Questions and Troubleshooting 1. VXImemAlloc/viMemAlloc fails when attempting to allocate a locked down physically contiguous buffer. This may be a result of several things: a. Ensure that the VXI Shared RAM Size is set larger than the Size parameter in VXImemAlloc or vimemalloc. Typically, set the VXI Shared RAM Size to All of System Memory. b. Ensure that the amount of Reserved Physical Memory (also referred to as the Shared RAM Pool) is smaller than the VXI Shared RAM Size parameter. c. Any memory reserved from the operating system is allocated in a contiguous region; the operating system may not have been able to reserve the amount of memory you specified if there were not a large enough contiguous region available to it. You may want to start by reserving less than 1 MB initially and then incrementing this to determine the amount of memory that can be reserved on your system. d. Ensure that the Size parameter in VXImemAlloc or vimemalloc is at least 1 KB smaller than the Shared RAM Pool Size (amount of reserved memory). Application Note
11 2. You get a system crash when your application attempts to access the shared memory buffer directly using the User Address pointer returned from VXImemAlloc(). In most nonvirtual memory systems, your user process can access the shared memory directly. Some virtual memory systems, such as using the AT-MXI under Windows NT, do not have the capability for a user process to access the kernel memory directly. In such systems, VXImemAlloc returns a value of 1, which indicates that the user address returned is not directly accessible by the user process. The user address is actually the kernel virtual address of the allocated shared memory. In this situation, you must use the function VXImemCopy to access the shared memory. Note that LabVIEW and VISA programmers do not need to be concerned about this. 3. How can I access the shared memory allocated with VXImemAlloc() or vimemalloc()? With VISA, you can access the shared memory buffer using viin8/16/32 or viout8/16/32. You can also use pointer dereferencing with NI-VISA if you map the allocated address with vimapaddress and verify that the VI_ATTR_WIN_ACCESS attribute returns VI_DEREF_ADDR. With the NI-VXI functions, you must use VXImemCopy() or you may use pointer dereferencing if VXImemAlloc() returns 0 as its Return value. You cannot reliably use direct VXI access (VXIin, VXIout, or VXImove) to access the shared memory buffer on non MITE-based platforms. 4. Why can't I use NI-VXI direct access functions to access a shared memory buffer allocated by VXImemAlloc()? If you use VXIin, VXIout, or VXImove to access the shared memory buffer, the computer CPU or the VXI/VME controller may not allow that access. VXI/VME controllers without a MITE (e.g. AT-MXI or VXIpc-500 Series) do not allow VXI cycles to addresses on the controller performing the cycle (i.e. they do not allow self-access). Your PC may also not be able to do this self access even in the case where you are using a MITE-based controller. Since the MITE is located on the PCI bus, the processor writes to or reads from the MITE address space. Then the MITE needs to get control of the PCI bus to continue the read or write to the shared RAM. Some computer CPUs will NOT allow a device on the PCI bus to arbitrate for the PCI bus while a cycle is in progress. In some cases, you may be able to write successfully, while VXIin fails with a Bus Error. You must use functions with which the CPU can directly access the shared memory on platforms for which VXImemAlloc returns a nonzero value. C developers using the NI VXI API must use VXImemCopy to access the shared memory buffer in such situations. Developers using LabVIEW or VISA functions do not need to be concerned with this issue. Both LabVIEW and VISA handle this automatically. 5. Which kind of SIMMs can I install on the PCI-MXI-2, VXI-MXI-2, VME-MXI-2 or VXI-MIO boards? 72 pin, 70 ns or faster SIMMs. Parity/nonparity does not matter. 6. Can I configure my system to share both system memory and onboard memory (SIMMs installed in PCI-MXI-2, VXI-MXI-2 or VME-MXI-2)? Yes, typically you will configure the VXI Shared RAM size to be twice the greater of system memory in your computer or onboard RAM. Under the Advanced Shared RAM settings button, select the Lower Half Window to System memory. Configure the Upper Half Window to Onboard memory. Remember that you cannot access the lower 4 KB of the onboard RAM because this is the location of the EEPROM. National Instruments Corporation 11 Application Note 158
12 Summary National Instruments VXI/VME controller provide at least one of two options for dual porting memory onto the VXI backplane. With some controllers, you can install a dedicated RAM SIMM; with some, you can map the operating systems memory onto the VXI/VME bus; and with some, you can do both. This memory appears as if it resides on the VXI/VME bus but resides on the host controller. VXI/VME bus mastering instruments can use this memory to store data required during analysis, generation or acquisition. Using shared memory with low-cost RAM SIMM modules, you can solve you data storage problems without having to purchase expensive dedicated memory modules for your instruments. Most users should consider sharing the host controller RAM and using NI-VISA to access the shared memory buffer as their best option. Developers using VISA do not need to be concerned with having to use special functions to access the local shared memory buffer.
VXI/VME-PCI8000 SERIES
READ ME FIRST VXI/VME-PCI8000 SERIES FOR WINDOWS 95/NT Contents This document contains information to help you understand the components of your kit, determine where to start setting up your kit, and learn
More informationVXIPC 800/700 SERIES FOR WINDOWS 95/NT
READ ME FIRST VXIPC 800/700 SERIES FOR WINDOWS 95/NT Contents This document contains information to help you understand the components of your kit, determine where to start setting up your kit, and learn
More informationUsing VME Devices with NI-VXI or NI-VISA
Using VME Devices with NI-VXI or NI-VISA Your application may call for installing VME devices in a VME mainframe or installing VME devices in a VXI mainframe. If using National Instruments' VXI or VME
More informationUsing Measurement & Automation Explorer (MAX) with VXI
Using Measurement & Automation Explorer (MAX) with VXI Introduction Measurement & Automation Explorer (MAX) provides access to all your National Instruments DAQ, GPIB, IMAQ, IVI, Motion, VISA, and VXI
More informationAgilent I/O Libraries Technical Overview
Agilent I/O Libraries Technical Overview Agilent Technologies The Agilent I/O Libraries are the software that is common to the Agilent I/O hardware products -- the original Standard Instrument Control
More informationKIT NI-VISA FOR WINDOWS 95/NT: WIN95, GWIN95, WINNT, AND GWINNT FRAMEWORKS
READ ME FIRST VXIplug&play SOFTWARE KIT NI-VISA FOR WINDOWS 95/NT: WIN95, GWIN95, WINNT, AND GWINNT FRAMEWORKS Thank you for purchasing a National Instruments VXIplug&play-compliant controller. To comply
More informationVXI-MXI-Express Series
INSTALLATION GUIDE VXI-MXI-Express Series This document describes how to set up and configure the VXI-MXI-Express Series controller. What You Need to Get Started To set up and use the VXI-MXI-Express Series
More informationNI-VISA for Windows 3.x WIN and GWIN Frameworks. The VXIplug&play software kit contains the following software and documentation components.
NATIONAL INSTRUMENTS The Software is the Instrument Read Me First Save this document for future reference. VXIplug&play Software Kit NI-VISA for Windows 3.x WIN and GWIN Frameworks Thank you for purchasing
More informationVXI-8340 SERIES INSTALLATION
VXI-8340 SERIES INSTALLATION AND CONFIGURATION Installation Guide This document explains how to install and configure your VXI-8340 series controller. Installing the Software Use the Setup program that
More informationVISA. NI-VISA User Manual. NI-VISA User Manual. June 1998 Edition Part Number D-01
VISA NI-VISA User Manual NI-VISA User Manual June 1998 Edition Part Number 321074D-01 Internet Support E-mail: support@natinst.com FTP Site: ftp.natinst.com Web Address: www.natinst.com Bulletin Board
More informationSetting up Embedded Controllers and Mainframe Extenders as Non-Slot 0 Devices, Non-Resource Managers
Setting up Embedded Controllers and Mainframe Extenders as Non-Slot Devices, Non-Resource Managers This document describes how to configure various National Instruments VXI/VME controllers for non-slot,
More informationAppendix G. Application Interface Library. G.1 VISA Library
Appendix G Application Interface Library G.1 VISA Library 131 Agilent VISA User s Guide Manual Part Number: E2090-90040 Printed in U.S.A. E0701 Contents Agilent VISA User s Guide Front Matter... 9 Notice...
More informationNI-VXI Software Manual for the VXIpc 800/700 Series
NI-VXI Software Manual for the VXIpc 800/700 Series NI-VXI Software Manual for the VXIpc 800/700 April 1997 Edition Part Number 321125E-01 Copyright 1996, 1997 National Instruments Corporation. All Rights
More informationNI-VISA. User Manual. February 1996 Edition Part Number A-01. Copyright 1996 National Instruments Corporation. All Rights Reserved.
NI-VISA User Manual February 1996 Edition Part Number 321074A-01 Copyright 1996 National Instruments Corporation. All Rights Reserved. Internet Support GPIB: gpib.support@natinst.com DAQ: daq.support@natinst.com
More informationBustec VISA Library and Tools User Manual
User Manual Bustec VISA Library and Tools User Manual PUBLICATION NUMBER: 8200-XX-UM-0020 Copyright, 2013, Bustec Ltd. Bustec Ltd. Bustec House, Shannon Business Park Shannon, Co. Clare, Ireland Tel: +353
More informationEmbedded Systems Dr. Santanu Chaudhury Department of Electrical Engineering Indian Institute of Technology, Delhi
Embedded Systems Dr. Santanu Chaudhury Department of Electrical Engineering Indian Institute of Technology, Delhi Lecture - 13 Virtual memory and memory management unit In the last class, we had discussed
More informationCS399 New Beginnings. Jonathan Walpole
CS399 New Beginnings Jonathan Walpole Memory Management Memory Management Memory a linear array of bytes - Holds O.S. and programs (processes) - Each cell (byte) is named by a unique memory address Recall,
More informationDeveloping Networked Data Acquisition Systems with NI-DAQ
Application Note 116 Developing Networked Data Acquisition Systems with NI-DAQ Tim Hayles What Is Remote Device Access? With the NI-DAQ Remote Device Access (RDA ) feature, you can run LabVIEW or LabWindows
More informationGetting Started with Your VXI/VME-PCI8000 Series and the NI-VXI TM Software for Microsoft Operating Systems
Getting Started with Your VXI/VME-PCI8000 Series and the NI-VXI TM Software for Microsoft Operating Systems VXI/VME-PCI8000 Series for Microsoft OS December 1996 Edition Part Number 320961C-01 Copyright
More informationMemory Management. Goals of Memory Management. Mechanism. Policies
Memory Management Design, Spring 2011 Department of Computer Science Rutgers Sakai: 01:198:416 Sp11 (https://sakai.rutgers.edu) Memory Management Goals of Memory Management Convenient abstraction for programming
More informationVISA Events in NI-VISA
VISA Events in NI-VISA Introduction The VISA operations Read, Write, In and Out allow basic I/O operations from the controller to instruments. These operations make up the basics of instrument I/O, but
More informationOutlook. Background Swapping Contiguous Memory Allocation Paging Structure of the Page Table Segmentation Example: The Intel Pentium
Main Memory Outlook Background Swapping Contiguous Memory Allocation Paging Structure of the Page Table Segmentation Example: The Intel Pentium 2 Backgound Background So far we considered how to share
More informationCS 333 Introduction to Operating Systems. Class 11 Virtual Memory (1) Jonathan Walpole Computer Science Portland State University
CS 333 Introduction to Operating Systems Class 11 Virtual Memory (1) Jonathan Walpole Computer Science Portland State University Virtual addresses Virtual memory addresses (what the process uses) Page
More informationLecture: DRAM Main Memory. Topics: virtual memory wrap-up, DRAM intro and basics (Section 2.3)
Lecture: DRAM Main Memory Topics: virtual memory wrap-up, DRAM intro and basics (Section 2.3) 1 TLB and Cache Is the cache indexed with virtual or physical address? To index with a physical address, we
More informationImagenation PX Series
Imagenation PX Series Guide To Troubleshooting Frame Grabber Installations Imagenation PX Series Frame Grabbers PX500, PX510, PX610 & PX610A Covering all Microsoft Win32 Operating Systems Windows 95, 98,
More informationEECS 482 Introduction to Operating Systems
EECS 482 Introduction to Operating Systems Winter 2018 Baris Kasikci Slides by: Harsha V. Madhyastha OS Abstractions Applications Threads File system Virtual memory Operating System Next few lectures:
More informationHandout 4 Memory Hierarchy
Handout 4 Memory Hierarchy Outline Memory hierarchy Locality Cache design Virtual address spaces Page table layout TLB design options (MMU Sub-system) Conclusion 2012/11/7 2 Since 1980, CPU has outpaced
More informationPC-based data acquisition I
FYS3240 PC-based instrumentation and microcontrollers PC-based data acquisition I Spring 2016 Lecture #8 Bekkeng, 20.01.2016 General-purpose computer With a Personal Computer (PC) we mean a general-purpose
More informationCS330: Operating System and Lab. (Spring 2006) I/O Systems
CS330: Operating System and Lab. (Spring 2006) I/O Systems Today s Topics Block device vs. Character device Direct I/O vs. Memory-mapped I/O Polling vs. Interrupts Programmed I/O vs. DMA Blocking vs. Non-blocking
More informationMemory Management. Reading: Silberschatz chapter 9 Reading: Stallings. chapter 7 EEL 358
Memory Management Reading: Silberschatz chapter 9 Reading: Stallings chapter 7 1 Outline Background Issues in Memory Management Logical Vs Physical address, MMU Dynamic Loading Memory Partitioning Placement
More informationAusgewählte Betriebssysteme - Mark Russinovich & David Solomon (used with permission of authors)
Outline Windows 2000 - The I/O Structure Ausgewählte Betriebssysteme Institut Betriebssysteme Fakultät Informatik Components of I/O System Plug n Play Management Power Management I/O Data Structures File
More informationArtisan Technology Group is your source for quality new and certified-used/pre-owned equipment
Artisan Technology Group is your source for quality new and certified-used/pre-owned equipment FAST SHIPPING AND DELIVERY TENS OF THOUSANDS OF IN-STOCK ITEMS EQUIPMENT DEMOS HUNDREDS OF MANUFACTURERS SUPPORTED
More informationImagenation PXR Series
Imagenation PXR Series Guide To Troubleshooting Frame Grabber Installations Imagenation PXR Series Frame Grabbers PXR800 Covering All Supported Microsoft Win32 Operating Systems Windows 98, 98SE, and Me
More informationFour Components of a Computer System
Four Components of a Computer System Operating System Concepts Essentials 2nd Edition 1.1 Silberschatz, Galvin and Gagne 2013 Operating System Definition OS is a resource allocator Manages all resources
More informationCHAPTER 11: IMPLEMENTING FILE SYSTEMS (COMPACT) By I-Chen Lin Textbook: Operating System Concepts 9th Ed.
CHAPTER 11: IMPLEMENTING FILE SYSTEMS (COMPACT) By I-Chen Lin Textbook: Operating System Concepts 9th Ed. File-System Structure File structure Logical storage unit Collection of related information File
More informationMemory Management. Disclaimer: some slides are adopted from book authors slides with permission 1
Memory Management Disclaimer: some slides are adopted from book authors slides with permission 1 CPU management Roadmap Process, thread, synchronization, scheduling Memory management Virtual memory Disk
More informationVME Data Acquisition System, ADC Read
VME Data Acquisition System, ADC Read Abstract: UTA-HEP/LC 0023 Shashwat Udit University of Texas at Arlington August 25, 2008 This document presents the design concept and the functionality of the newly
More informationPXI Versus Industrial Computers
PXI Versus Industrial Computers Contents What is PXI?... 3 PXI Systems Alliance... 3 PCI... 3 Physical Features... 5 Electrical Features... 6 Integrated, Expandable Systems... 6 What are Industrial PCs?...
More informationVXI. VXI-1394 User Manual for Windows. VXI-1394 User Manual for Windows. March B-01
VXI VXI-1394 User Manual for Windows VXI-1394 User Manual for Windows March 2005 370533B-01 Support Worldwide Technical Support and Product Information ni.com National Instruments Corporate Headquarters
More informationSpring 2017 :: CSE 506. Device Programming. Nima Honarmand
Device Programming Nima Honarmand read/write interrupt read/write Spring 2017 :: CSE 506 Device Interface (Logical View) Device Interface Components: Device registers Device Memory DMA buffers Interrupt
More informationVMISFT-9450 I/O Connectivity IOWorks Board Drivers
I/O Connectivity IOWorks Board Drivers Supports more than 60 I/O products from GE Fanuc C and C++ libraries enable you to choose your programming language Support for multiple operating systems, I/O buses,
More informationChapter 9 Memory Management
Contents 1. Introduction 2. Computer-System Structures 3. Operating-System Structures 4. Processes 5. Threads 6. CPU Scheduling 7. Process Synchronization 8. Deadlocks 9. Memory Management 10. Virtual
More informationChapter 4: Multithreaded Programming. Operating System Concepts 8 th Edition,
Chapter 4: Multithreaded Programming, Silberschatz, Galvin and Gagne 2009 Chapter 4: Multithreaded Programming Overview Multithreading Models Thread Libraries Threading Issues 4.2 Silberschatz, Galvin
More informationMXI. Getting Started with Your VXI/VME-PCI8026 and the NI-VXI /NI-VISA Software for Linux. VXI/VME-PCI8026 for Linux
MXI Getting Started with Your VXI/VME-PCI8026 and the NI-VXI /NI-VISA Software for Linux VXI/VME-PCI8026 for Linux December 1999 Edition Part Number 322651A-01 Worldwide Technical Support and Product Information
More informationVirtual Memory. User memory model so far:! In reality they share the same memory space! Separate Instruction and Data memory!!
Virtual Memory User memory model so far:! Separate Instruction and Data memory!! In reality they share the same memory space!!! 0x00000000 User space Instruction memory 0x7fffffff Data memory MicroComuter
More informationChapter 4: Threads. Overview Multithreading Models Thread Libraries Threading Issues Operating System Examples Windows XP Threads Linux Threads
Chapter 4: Threads Overview Multithreading Models Thread Libraries Threading Issues Operating System Examples Windows XP Threads Linux Threads Chapter 4: Threads Objectives To introduce the notion of a
More informationLecture: DRAM Main Memory. Topics: virtual memory wrap-up, DRAM intro and basics (Section 2.3)
Lecture: DRAM Main Memory Topics: virtual memory wrap-up, DRAM intro and basics (Section 2.3) 1 TLB and Cache 2 Virtually Indexed Caches 24-bit virtual address, 4KB page size 12 bits offset and 12 bits
More informationArtisan Technology Group is your source for quality new and certified-used/pre-owned equipment
Artisan Technology Group is your source for quality new and certified-used/pre-owned equipment FAST SHIPPING AND DELIVERY TENS OF THOUSANDS OF IN-STOCK ITEMS EQUIPMENT DEMOS HUNDREDS OF MANUFACTURERS SUPPORTED
More informationVirtual Memory. Virtual Memory
Virtual Memory Virtual Memory Main memory is cache for secondary storage Secondary storage (disk) holds the complete virtual address space Only a portion of the virtual address space lives in the physical
More informationCS 134. Operating Systems. April 8, 2013 Lecture 20. Input/Output. Instructor: Neil Rhodes. Monday, April 7, 14
CS 134 Operating Systems April 8, 2013 Lecture 20 Input/Output Instructor: Neil Rhodes Hardware How hardware works Operating system layer What the kernel does API What the programmer does Overview 2 kinds
More informationIntroduction read-only memory random access memory
Memory Interface Introduction Simple or complex, every microprocessorbased system has a memory system. Almost all systems contain two main types of memory: read-only memory (ROM) and random access memory
More informationMEMORY MANAGEMENT UNITS
Memory Management Units memory management unit (MMU) simply converts a virtual address generated by a CPU into a physical address which is applied to the memory system address space divided into fixed
More informationCS3600 SYSTEMS AND NETWORKS
CS3600 SYSTEMS AND NETWORKS NORTHEASTERN UNIVERSITY Lecture 11: File System Implementation Prof. Alan Mislove (amislove@ccs.neu.edu) File-System Structure File structure Logical storage unit Collection
More information2.0 GHz Pentium M 760 and 1.5 GHz Celeron M 370 Embedded Controllers for PXI
NI, NI 2.0 GHz Pentium M 760 () 1.5 GHz Celeron M 370 () 512 MB dual-channel DDR2 RAM standard, 2 GB maximum () 256 MB dual-channel DDR2 RAM standard, 2 GB maximum () Internal PXI trigger bus routing Watchdog
More informationLecture 15: Virtual Memory and Large Caches. Today: TLB design and large cache design basics (Sections )
Lecture 15: Virtual Memory and Large Caches Today: TLB design and large cache design basics (Sections 5.3-5.4) 1 TLB and Cache Is the cache indexed with virtual or physical address? To index with a physical
More informationGetting Started with Your VXI/VME-PCI8022 and the NI-VXI Software for Solaris
Getting Started with Your VXI/VME-PCI8022 and the NI-VXI Software for Solaris VXI/VME-PCI8022 for Solaris June 1997 Edition Part Number 321413A-01 Copyright 1997 National Instruments Corporation. All rights
More informationWhat is a file system
COSC 6397 Big Data Analytics Distributed File Systems Edgar Gabriel Spring 2017 What is a file system A clearly defined method that the OS uses to store, catalog and retrieve files Manage the bits that
More informationSoftware-Defined Test Fundamentals. Understanding the Architecture of Modular, High-Performance Test Systems
Software-Defined Test Fundamentals Understanding the Architecture of Modular, High-Performance Test Systems Contents Executive Summary 4 Architecture Layer No. 5: System Management/Test Executive 5 Architecture
More informationMemory Management. Dr. Yingwu Zhu
Memory Management Dr. Yingwu Zhu Big picture Main memory is a resource A process/thread is being executing, the instructions & data must be in memory Assumption: Main memory is super big to hold a program
More informationMemory Management (Chaper 4, Tanenbaum)
Memory Management (Chaper 4, Tanenbaum) Memory Mgmt Introduction The CPU fetches instructions and data of a program from memory; therefore, both the program and its data must reside in the main (RAM and
More informationSystems Alliance. VPP-2: System Frameworks Specification
Systems Alliance VPP-2: System Frameworks Specification Revision 5.5 March 6, 2013 VPP-2 Revision History This section is an overview of the revision history of the VPP-2 specification. Revision 1.0, July
More informationSystems Alliance. VPP-2: System Frameworks Specification
Systems Alliance VPP-2: System Frameworks Specification Revision 7.0, October 19, 2018 VPP-2 Revision History This section is an overview of the revision history of the VPP-2 specification. Revision 1.0,
More informationUsing Desktop PCs as RT Targets with the LabVIEW Real-Time Module
Using Desktop PCs as RT Targets with the LabVIEW Real-Time Module Contents The LabVIEW Real-Time Module can execute VIs on RT targets running the real-time operating system of Ardence Phar Lap Embedded
More informationArtisan Technology Group is your source for quality new and certified-used/pre-owned equipment
Artisan Technology Group is your source for quality new and certified-used/pre-owned equipment FAST SHIPPING AND DELIVERY TENS OF THOUSANDS OF IN-STOCK ITEMS EQUIPMENT DEMOS HUNDREDS OF MANUFACTURERS SUPPORTED
More informationThe Host Environment. Module 2.1. Copyright 2006 EMC Corporation. Do not Copy - All Rights Reserved. The Host Environment - 1
The Host Environment Module 2.1 2006 EMC Corporation. All rights reserved. The Host Environment - 1 The Host Environment Upon completion of this module, you will be able to: List the hardware and software
More informationDYNAMIC ENGINEERING 435 Park Dr., Ben Lomond, Calif Fax Est
DYNAMIC ENGINEERING 435 Park Dr., Ben Lomond, Calif. 95005 831-336-8891 Fax 831-336-3840 http://www.dyneng.com sales@dyneng.com Est. 1988 User Manual PCI LVDS 8R Driver Documentation Revision A Corresponding
More informationChapter 1: Introduction Dr. Ali Fanian. Operating System Concepts 9 th Edit9on
Chapter 1: Introduction Dr. Ali Fanian Operating System Concepts 9 th Edit9on Silberschatz, Galvin and Gagne 2013 1.2 Silberschatz, Galvin and Gagne 2013 Organization Lectures Homework Quiz Several homeworks
More informationStorage Management 1
Storage Management Goals of this Lecture Help you learn about: Locality and caching Typical storage hierarchy Virtual memory How the hardware and OS give applications the illusion of a large, contiguous,
More informationCS Computer Architecture
CS 35101 Computer Architecture Section 600 Dr. Angela Guercio Fall 2010 An Example Implementation In principle, we could describe the control store in binary, 36 bits per word. We will use a simple symbolic
More informationCSA8000 & TDS8000 Instruments CSA8000B & TDS8000B Instruments Using National Instruments LabVIEW
Supplement CSA8000 & TDS8000 Instruments CSA8000B & TDS8000B Instruments Using National Instruments LabVIEW This document applies to software version 1.3 and above. www.tektronix.com Copyright Tektronix,
More informationPrinceton University. Computer Science 217: Introduction to Programming Systems. The Memory/Storage Hierarchy and Virtual Memory
Princeton University Computer Science 27: Introduction to Programming Systems The Memory/Storage Hierarchy and Virtual Memory Goals of this Lecture Help you learn about: Locality and caching The memory
More informationChapter 5B. Large and Fast: Exploiting Memory Hierarchy
Chapter 5B Large and Fast: Exploiting Memory Hierarchy One Transistor Dynamic RAM 1-T DRAM Cell word access transistor V REF TiN top electrode (V REF ) Ta 2 O 5 dielectric bit Storage capacitor (FET gate,
More informationIntroduction to Operating. Chapter Chapter
Introduction to Operating Systems Chapter 1 1.3 Chapter 1.5 1.9 Learning Outcomes High-level understand what is an operating system and the role it plays A high-level understanding of the structure of
More informationChapter 14: File-System Implementation
Chapter 14: File-System Implementation Directory Implementation Allocation Methods Free-Space Management Efficiency and Performance Recovery 14.1 Silberschatz, Galvin and Gagne 2013 Objectives To describe
More informationThe Operating System. Chapter 6
The Operating System Machine Level Chapter 6 1 Contemporary Multilevel Machines A six-level l computer. The support method for each level is indicated below it.2 Operating System Machine a) Operating System
More informationMisc. Third Generation Batch Multiprogramming. Fourth Generation Time Sharing. Last Time Evolution of OSs
Third Generation Batch Multiprogramming Misc. Problem: but I/O still expensive; can happen in middle of job Idea: have a pool of ready jobs in memory, switch to one when another needs I/O When one job
More informationOperating Systems and Computer Networks. Memory Management. Dr.-Ing. Pascal A. Klein
Operating Systems and Computer Networks Memory Management pascal.klein@uni-due.de Alexander Maxeiner, M.Sc. Faculty of Engineering Agenda 1 Swapping 2 Segmentation Algorithms 3 Memory Allocation 4 Virtual
More informationMemory Addressing. Pradipta De
Memory Addressing Pradipta De pradipta.de@sunykorea.ac.kr Today s Topic Allow processes (and kernel) to reliably access physical memory How to create illusions of large RAM Ensure memory protection Do
More informationmemory management Vaibhav Bajpai
memory management Vaibhav Bajpai OS 2013 motivation virtualize resources: multiplex CPU multiplex memory (CPU scheduling) (memory management) why manage memory? controlled overlap processes should NOT
More informationCS252 S05. Main memory management. Memory hardware. The scale of things. Memory hardware (cont.) Bottleneck
Main memory management CMSC 411 Computer Systems Architecture Lecture 16 Memory Hierarchy 3 (Main Memory & Memory) Questions: How big should main memory be? How to handle reads and writes? How to find
More informationVXI VI Reference Manual
VXI VI Reference Manual LabVIEW VXI VI Reference Manual July 2000 Edition Part Number 370122A-01 Worldwide Technical Support and Product Information www.ni.com National Instruments Corporate Headquarters
More informationChapter 8 Main Memory
COP 4610: Introduction to Operating Systems (Spring 2014) Chapter 8 Main Memory Zhi Wang Florida State University Contents Background Swapping Contiguous memory allocation Paging Segmentation OS examples
More informationIntroduction to Operating Systems. Chapter Chapter
Introduction to Operating Systems Chapter 1 1.3 Chapter 1.5 1.9 Learning Outcomes High-level understand what is an operating system and the role it plays A high-level understanding of the structure of
More information1. Memory technology & Hierarchy
1 Memory technology & Hierarchy Caching and Virtual Memory Parallel System Architectures Andy D Pimentel Caches and their design cf Henessy & Patterson, Chap 5 Caching - summary Caches are small fast memories
More informationChapter 12: File System Implementation
Chapter 12: File System Implementation Silberschatz, Galvin and Gagne 2013 Chapter 12: File System Implementation File-System Structure File-System Implementation Allocation Methods Free-Space Management
More informationMXI TM Getting Started with Your PCI-Based MXI-2 Interface for Windows
TM MXI Getting Started with Your PCI-Based MXI-2 Interface for Windows PCI-Based MXI-2 Interface for Windows August 2002 Edition Part Number 321712C-01 Support Worldwide Technical Support and Product Information
More informationBattery Backup. Sanitization Procedure Waveform Data SDRAM 32 MB (-01/-21) No Yes Yes Cycle Power
Manufacturer: National Instruments Board Assembly Part Numbers ( DIGITIZERS) Part Number and Revision Description 185701C-01 to 185701H-01 IF DIGITIZER, 16MS 185701F-21 IF DIGITIZER, 16MS 185701C-02 to
More informationComputer Science 146. Computer Architecture
Computer Architecture Spring 2004 Harvard University Instructor: Prof. dbrooks@eecs.harvard.edu Lecture 18: Virtual Memory Lecture Outline Review of Main Memory Virtual Memory Simple Interleaving Cycle
More informationIntroduction. CS3026 Operating Systems Lecture 01
Introduction CS3026 Operating Systems Lecture 01 One or more CPUs Device controllers (I/O modules) Memory Bus Operating system? Computer System What is an Operating System An Operating System is a program
More informationLecture 8: Virtual Memory. Today: DRAM innovations, virtual memory (Sections )
Lecture 8: Virtual Memory Today: DRAM innovations, virtual memory (Sections 5.3-5.4) 1 DRAM Technology Trends Improvements in technology (smaller devices) DRAM capacities double every two years, but latency
More informationSandboxing Untrusted Code: Software-Based Fault Isolation (SFI)
Sandboxing Untrusted Code: Software-Based Fault Isolation (SFI) Brad Karp UCL Computer Science CS GZ03 / M030 9 th December 2011 Motivation: Vulnerabilities in C Seen dangers of vulnerabilities: injection
More informationEITF20: Computer Architecture Part 5.1.1: Virtual Memory
EITF20: Computer Architecture Part 5.1.1: Virtual Memory Liang Liu liang.liu@eit.lth.se 1 Outline Reiteration Virtual memory Case study AMD Opteron Summary 2 Memory hierarchy 3 Cache performance 4 Cache
More informationChapter 12: File System Implementation
Chapter 12: File System Implementation Virtual File Systems. Allocation Methods. Folder Implementation. Free-Space Management. Directory Block Placement. Recovery. Virtual File Systems An object-oriented
More informationIntroduction to Operating Systems. Chapter Chapter
Introduction to Operating Systems Chapter 1 1.3 Chapter 1.5 1.9 Learning Outcomes High-level understand what is an operating system and the role it plays A high-level understanding of the structure of
More informationNI-VISA for Solaris 1.x and 2.x SUN and GSUN Frameworks
NATIONAL INSTRUMENTS The Software is the Instrument Read Me First Save this document for future reference. VXIplug&play Software Kit NI-VISA for Solaris 1.x and 2.x SUN and GSUN Frameworks Thank you for
More informationVirtual Memory. Kevin Webb Swarthmore College March 8, 2018
irtual Memory Kevin Webb Swarthmore College March 8, 2018 Today s Goals Describe the mechanisms behind address translation. Analyze the performance of address translation alternatives. Explore page replacement
More informationVirtual Memory #2 Feb. 21, 2018
15-410...The mysterious TLB... Virtual Memory #2 Feb. 21, 2018 Dave Eckhardt Brian Railing 1 L16_VM2 Last Time Mapping problem: logical vs. physical addresses Contiguous memory mapping (base, limit) Swapping
More informationI/O Systems. Jinkyu Jeong Computer Systems Laboratory Sungkyunkwan University
I/O Systems Jinkyu Jeong (jinkyu@skku.edu) Computer Systems Laboratory Sungkyunkwan University http://csl.skku.edu Today s Topics Device characteristics Block device vs. Character device Direct I/O vs.
More information143A: Principles of Operating Systems. Lecture 5: Address translation. Anton Burtsev October, 2018
143A: Principles of Operating Systems Lecture 5: Address translation Anton Burtsev October, 2018 Two programs one memory Or more like renting a set of rooms in an office building Or more like renting a
More informationTutorial on Memory Management, Deadlock and Operating System Types
Operating Systems and Systems Integration Tutorial on Memory Management, Deadlock and Operating System Types 1 Background 1.1 Memory management Virtual memory: is a method of managing memory automatically
More information