JP5920105B2 - 演算処理装置および演算処理装置の制御方法 - Google Patents
演算処理装置および演算処理装置の制御方法 Download PDFInfo
- Publication number
- JP5920105B2 JP5920105B2 JP2012180607A JP2012180607A JP5920105B2 JP 5920105 B2 JP5920105 B2 JP 5920105B2 JP 2012180607 A JP2012180607 A JP 2012180607A JP 2012180607 A JP2012180607 A JP 2012180607A JP 5920105 B2 JP5920105 B2 JP 5920105B2
- Authority
- JP
- Japan
- Prior art keywords
- node
- nodes
- data
- axis direction
- adjacent
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/084—Multiuser, multiprocessor or multiprocessing cache systems with a shared cache
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0813—Multiuser, multiprocessor or multiprocessing cache systems with a network or matrix configuration
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0815—Cache consistency protocols
- G06F12/0817—Cache consistency protocols using directory methods
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/163—Interprocessor communication
- G06F15/173—Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Multi Processors (AREA)
Description
図1は、実施例1に係る演算処理装置100の構成の一例を示すブロック図である。図1に示すように、演算処理装置100は、メモリ制御装置110(図1中、M)と、I/O(Input/Output)制御装置120(図1中、IO)と、X軸方向およびY軸方向の二次元にタイル状に配置された複数のノード130(図1中、N)とを有する。
次に、図2を用いて、ノード130の構成の一例を説明する。図2は、ノード130の構成の一例を示すブロック図である。図2に示すように、ノード130は、4つのコア201と、キャッシュメモリ202とトーラスルータ300とを有する。
次に、図3を用いて、トーラスルータ300の構成について説明する。図3は、トーラスルータ300の構成の一例を示す図である。図3に示すように、トーラスルータ300は、ポート301(図3中、P)と、ポート302と、ポート303と、ポート304と、クロスバ305と、インターフェース306(図3中、T)と、コントローラ307とを有する。
次に、図4および図5を用いて、演算処理装置100による処理動作を説明する。ここでは、図4を用いて、同一X座標上に位置する別のノードがデータを保持する場合の処理動作を説明し、図5を用いて、X座標およびY座標が異なる座標に位置する別のノードがデータを保持する場合の処理動作を説明する。
次に図6および図7を用いて、ノード130による処理の処理手順を説明する。ここでは、図6を用いてデータの取得を要求するノード130による処理の処理手順を説明し、図7を用いてデータの取得を要求するパケットを受信したノード130による処理の処理手順を説明する。
図6は、データの取得を要求するノード130による処理の処理手順を示すフローチャートである。図6に示すように、データの取得を要求するノード130は、要求するデータを保持するノードのアドレスを検索する(ステップS101)。そして、ノード130は、検索したアドレスを宛て先とするデータの取得を要求するパケットを送信する(ステップS102)。
図7は、データの取得を要求するパケットを受信したノード130による処理の処理手順を示すフローチャートである。図7に示すように、ノード130は、データの取得を要求するパケットを受信したか否かを判定する(ステップS201)。ここで、ノード130は、データの取得を要求するパケットを受信したと判定する場合(ステップS201、Yes)、Y軸方向からパケットを受信したか否かを判定する(ステップS202)。
上述してきたように、演算処理装置100によれば、コア数の増加に応じた性能の向上を図ることができる。
図8を用いて、ノード130に異常が生じた場合の処理動作を説明する。なお、ここでは、一例として、座標(3,4)に位置するノード130に異常が生じた場合を示す。図8は、座標(3,4)に位置するノード130に異常が生じた場合の処理動作を示す図である。なお、図8では、Y軸方向のデータバスは省略しているが、図1と同様に、Y軸方向もデータバスで接続される。
本実施例において説明した各処理のうち自動的に行われるものとして説明した処理の全部または一部を手動的に行うこともできる。あるいは、手動的に行われるものとして説明した処理の全部又は一部を公知の方法で自動的に行うこともできる。この他、上記文章中や図面中で示した処理手順、制御手順、具体的名称については、特記する場合を除いて任意に変更することができる。
前記複数のノードのうち前記X軸方向に隣接するノードをリング状に接続する第1の接続部と、
前記複数のノードのうち前記Y軸方向に隣接するノードをリング状に接続する第2の接続部と、
を有し、
前記複数のノードに含まれるキャッシュメモリは、前記Y軸方向にバンク分割され、前記X軸方向において該キャッシュメモリの一貫性をスヌープ方式で制御されて、前記複数のノード間で共有される
ことを特徴とする演算処理装置。
ノードがX軸方向において両端以外に位置する場合、該ノードと、該ノードに隣接する位置に配置されるノードに隣接するノードとを接続し、
ノードがX軸方向において両端に位置する場合、該ノードと該ノードに隣接する位置に配置されるノードとを接続するとともに、該ノードと、該ノードに隣接する位置に配置されるノードに隣接するノードとを接続し、
ノードがX軸方向において両端に位置するノードと隣接する場合、該ノードと両端に位置するノードのうち該ノードに隣接するノードとを接続するとともに、該ノードと、該ノードに隣接する位置に配置されるノードに隣接するノードとを接続し、
前記第2の接続部は、
ノードがY軸方向において両端以外に位置する場合、該ノードと、該ノードに隣接する位置に配置されるノードに隣接するノードとを接続し
ノードがY軸方向において両端に位置する場合、該ノードと該ノードに隣接する位置に配置されるノードとを接続するとともに、該ノードと、該ノードに隣接する位置に配置されるノードに隣接するノードとを接続し、
ノードがY軸方向において両端に位置するノードと隣接する場合、該ノードと両端に位置するノードのうち該ノードに隣接するノードとを接続するとともに、該ノードと、該ノードに隣接する位置に配置されるノードに隣接するノードとを接続する
ことを特徴とする付記1に記載の演算処理装置。
各ノードが、
他のノードが有する前記キャッシュメモリに保持されるデータの取得を要求する場合、前記複数のノードに含まれるキャッシュメモリをY軸方向に分割したバンクのうち、要求するデータを保持するバンクのアドレスを指定して、第2の接続部によりY軸方向にリング状に接続されるノードを介して該データを保持するバンクに該データの取得を要求し、
前記データの要求元のノードと前記Y軸方向の座標が同一である列上に位置し、前記指定されたアドレスのバンクを管理するノードが、
要求された前記データを保持する場合、前記Y軸方向にリング状に接続されるノードを介して該データを前記要求元のノードに応答し、要求された前記データを保持しない場合、第1の接続部により前記X軸方向にリング状に接続されるノードに、要求された前記データを保持するノードをスヌープ方式で問い合わせて該データを取得し、前記Y軸方向にリング状に接続されるノードを介して取得した該データを前記要求元のノードに応答する
各処理を含んだことを特徴とする演算処理装置の制御方法。
ノードがX軸方向において両端以外に位置する場合、該ノードと、該ノードに隣接する位置に配置されるノードに隣接するノードとを接続し、
ノードがX軸方向において両端に位置する場合、該ノードと該ノードに隣接する位置に配置されるノードとを接続するとともに、該ノードと、該ノードに隣接する位置に配置されるノードに隣接するノードとを接続し、
ノードがX軸方向において両端に位置するノードと隣接する場合、該ノードと両端に位置するノードのうち該ノードに隣接するノードとを接続するとともに、該ノードと、該ノードに隣接する位置に配置されるノードに隣接するノードとを接続し、
前記第2の接続部は、
ノードがY軸方向において両端以外に位置する場合、該ノードと、該ノードに隣接する位置に配置されるノードに隣接するノードとを接続し
ノードがY軸方向において両端に位置する場合、該ノードと該ノードに隣接する位置に配置されるノードとを接続するとともに、該ノードと、該ノードに隣接する位置に配置されるノードに隣接するノードとを接続し、
ノードがY軸方向において両端に位置するノードと隣接する場合、該ノードと両端に位置するノードのうち該ノードに隣接するノードとを接続するとともに、該ノードと、該ノードに隣接する位置に配置されるノードに隣接するノードとを接続する
ことを特徴とする付記4に記載の演算処理装置の制御方法。
処理を更に含んだことを特徴とする付記4または5に記載の演算処理装置の制御方法。
101 第1の接続部
102 第2の接続部
130 ノード
201 コア
202 分散共有型のキャッシュメモリ
Claims (4)
- コア部と、分散共有型のキャッシュメモリとを有する複数のノードをX軸方向およびY軸方向の二次元に配置する演算処理装置において、
前記複数のノードのうち、Y座標の値が同一となるノード間を、前記X軸方向にリング状に接続する第1の接続部と、
前記複数のノードのうち、X座標の値が同一となるノード間を、前記Y軸方向にリング状に接続する第2の接続部と、
を有し、
前記複数のノードに含まれるキャッシュメモリは、前記Y軸方向にバンク分割され、前記X軸方向において該キャッシュメモリの一貫性をスヌープ方式で制御されて、前記複数のノード間で共有される
ことを特徴とする演算処理装置。 - 前記第1の接続部は、
ノードがX軸方向において両端以外に位置する場合、該ノードと、該ノードに隣接する位置に配置されるノードに隣接するノードとを接続し、
ノードがX軸方向において両端に位置する場合、該ノードと該ノードに隣接する位置に配置されるノードとを接続するとともに、該ノードと、該ノードに隣接する位置に配置されるノードに隣接するノードとを接続し、
ノードがX軸方向において両端に位置するノードと隣接する場合、該ノードと両端に位置するノードのうち該ノードに隣接するノードとを接続するとともに、該ノードと、該ノードに隣接する位置に配置されるノードに隣接するノードとを接続し、
前記第2の接続部は、
ノードがY軸方向において両端以外に位置する場合、該ノードと、該ノードに隣接する位置に配置されるノードに隣接するノードとを接続し
ノードがY軸方向において両端に位置する場合、該ノードと該ノードに隣接する位置に配置されるノードとを接続するとともに、該ノードと、該ノードに隣接する位置に配置されるノードに隣接するノードとを接続し、
ノードがY軸方向において両端に位置するノードと隣接する場合、該ノードと両端に位置するノードのうち該ノードに隣接するノードとを接続するとともに、該ノードと、該ノードに隣接する位置に配置されるノードに隣接するノードとを接続する
ことを特徴とする請求項1に記載の演算処理装置。 - 前記複数のノードのいずれかに異常が発生した場合、異常が発生したノードおよび該ノードとX座標が同一であるノードのすべてを切離すことを特徴とする請求項1または2に記載の演算処理装置。
- コア部と分散共有型のキャッシュメモリとを有する複数のノードをX軸方向およびY軸方向の二次元に配置する演算処理装置の制御方法において、
要求されるデータのアドレスに対応付けられるバンクが要求元のノードが管理するバンクではない場合に、データの取得を要求する要求元のノードが、前記要求されるデータの取得要求を送信し、
複数のノードのうち、X座標の値が同一となるノードの間をY軸方向にリング状に接続する第2の接続部を介して、データの前記取得要求を、ノード間で送信し、
データの前記取得要求により要求されるデータのアドレスに対応付けられるバンクを管理するノードであって、前記要求元のノードとX座標の値が同一であるノードが、前記取得要求により要求されるデータを自ノードが備えるキャッシュメモリに保持している場合には、その保持しているデータを前記要求元のノードに応答し、
データの前記取得要求により要求されるデータのアドレスに対応付けられるバンクを管理するノードであって、前記要求元のノードとX座標の値が同一であるノードが、前記取得要求により要求されるデータを自ノードが備えるキャッシュメモリに保持していない場合には、複数のノードのうち、Y座標の値が同一となるノードの間をX軸方向にリング状に接続する第1の接続部により、自ノードとY座標の値が同一であるノードに対して、データの前記取得要求により要求されるデータに関してスヌープ方式で問い合わせ、
問い合わせられたノードのうち、いずれかのノードが、データの前記取得要求により要求されるデータを当該いずれかのノードが備えるキャッシュメモリに保持している場合には、当該いずれかのノードが、その保持しているデータを、前記第1の接続部を介して、応答し、
前記第1の接続部を介してデータが応答された場合には、データの前記取得要求により要求されるデータのアドレスに対応付けられるバンクを管理するノードであって、前記要求元のノードとX座標の値が同一であるノードが、前記第1の接続部を介して応答されたデータを取得し、取得したデータを、前記第2の接続部を介して、前記要求元のノードに応答するという、
各処理を含んだことを特徴とする演算処理装置の制御方法。
Priority Applications (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2012180607A JP5920105B2 (ja) | 2012-08-16 | 2012-08-16 | 演算処理装置および演算処理装置の制御方法 |
| US13/920,811 US9009372B2 (en) | 2012-08-16 | 2013-06-18 | Processor and control method for processor |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2012180607A JP5920105B2 (ja) | 2012-08-16 | 2012-08-16 | 演算処理装置および演算処理装置の制御方法 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JP2014038494A JP2014038494A (ja) | 2014-02-27 |
| JP5920105B2 true JP5920105B2 (ja) | 2016-05-18 |
Family
ID=50100920
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2012180607A Expired - Fee Related JP5920105B2 (ja) | 2012-08-16 | 2012-08-16 | 演算処理装置および演算処理装置の制御方法 |
Country Status (2)
| Country | Link |
|---|---|
| US (1) | US9009372B2 (ja) |
| JP (1) | JP5920105B2 (ja) |
Families Citing this family (13)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2015050594A2 (en) * | 2013-06-16 | 2015-04-09 | President And Fellows Of Harvard College | Methods and apparatus for parallel processing |
| US10303637B2 (en) * | 2015-08-20 | 2019-05-28 | Toshiba Memory Corporation | Storage system including a plurality of storage devices arranged in a holder |
| US9832277B2 (en) * | 2015-11-13 | 2017-11-28 | Western Digital Technologies, Inc. | Systems and methods for adaptive partitioning in distributed cache memories |
| NO342930B1 (en) * | 2016-10-18 | 2018-09-03 | Numascale As | Cache Coherent node controller |
| CN108400880B (zh) * | 2017-02-07 | 2020-11-03 | 华为技术有限公司 | 片上网络、数据传输方法和第一交换节点 |
| NO343359B1 (en) * | 2017-05-02 | 2019-02-11 | Numascale As | Interconnect switch in multiprocessor systems |
| CN109213641B (zh) * | 2017-06-29 | 2021-10-26 | 展讯通信(上海)有限公司 | 缓存一致性检测系统及方法 |
| EP3757813A3 (en) * | 2019-06-18 | 2021-01-20 | Tenstorrent Inc. | Processor cores using packet identifiers for routing and computation |
| US12236237B2 (en) | 2019-06-18 | 2025-02-25 | Tenstorrent Inc. | Processor cores using content object identifiers for routing and computation |
| JP7473755B2 (ja) * | 2020-03-11 | 2024-04-24 | 株式会社デンソー | プロセッサ及びデータ経路再構成方法 |
| CN112416852B (zh) * | 2020-12-08 | 2023-11-21 | 海光信息技术股份有限公司 | 环形互连结构路由确定方法及装置 |
| US12111779B2 (en) * | 2022-09-30 | 2024-10-08 | Mellanox Technologies, Ltd. | Node identification allocation in a multi-tile system with multiple derivatives |
| US12086066B1 (en) * | 2023-03-15 | 2024-09-10 | Cornami, Inc. | Cache architecture for a massively parallel processing array |
Family Cites Families (9)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5715391A (en) * | 1991-11-15 | 1998-02-03 | International Business Machines Corporation | Modular and infinitely extendable three dimensional torus packaging scheme for parallel processing |
| JPH06266684A (ja) * | 1993-03-15 | 1994-09-22 | Toshiba Corp | プロセッサ間ルーティング方式 |
| US6253292B1 (en) * | 1997-08-22 | 2001-06-26 | Seong Tae Jhang | Distributed shared memory multiprocessor system based on a unidirectional ring bus using a snooping scheme |
| JP3980488B2 (ja) | 2001-02-24 | 2007-09-26 | インターナショナル・ビジネス・マシーンズ・コーポレーション | 超並列コンピュータ・システム |
| US7191311B2 (en) * | 2003-12-13 | 2007-03-13 | International Business Machines Corporation | Method and system of interconnecting processors of a parallel computer to facilitate torus partitioning |
| JP4656862B2 (ja) | 2004-05-28 | 2011-03-23 | ルネサスエレクトロニクス株式会社 | 半導体装置 |
| US7743285B1 (en) * | 2007-04-17 | 2010-06-22 | Hewlett-Packard Development Company, L.P. | Chip multiprocessor with configurable fault isolation |
| JP4676463B2 (ja) * | 2007-07-13 | 2011-04-27 | 株式会社日立製作所 | 並列計算機システム |
| JP2012252490A (ja) * | 2011-06-02 | 2012-12-20 | Renesas Electronics Corp | マルチプロセッサおよびそれを用いた画像処理システム |
-
2012
- 2012-08-16 JP JP2012180607A patent/JP5920105B2/ja not_active Expired - Fee Related
-
2013
- 2013-06-18 US US13/920,811 patent/US9009372B2/en active Active
Also Published As
| Publication number | Publication date |
|---|---|
| US20140052923A1 (en) | 2014-02-20 |
| JP2014038494A (ja) | 2014-02-27 |
| US9009372B2 (en) | 2015-04-14 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP5920105B2 (ja) | 演算処理装置および演算処理装置の制御方法 | |
| US8848703B2 (en) | On-chip router and multi-core system using the same | |
| US9952975B2 (en) | Memory network to route memory traffic and I/O traffic | |
| JP5852294B2 (ja) | マルチプロセサシステムおよびマルチプロセサシステムの構成方法 | |
| KR102092660B1 (ko) | Cpu 및 다중 cpu 시스템 관리 방법 | |
| JP5419107B2 (ja) | マルチコア処理システム | |
| JP5310175B2 (ja) | スイッチシステム、及びスイッチシステムの制御方法 | |
| JP4484757B2 (ja) | 情報処理装置 | |
| JP2010218364A (ja) | 情報処理システム、通信制御装置および方法 | |
| US11157405B2 (en) | Programmable cache coherent node controller | |
| US7159079B2 (en) | Multiprocessor system | |
| JP2016139256A (ja) | 入出力制御装置、入出力制御システム、入出力制御方法、および、プログラム | |
| JP5754504B2 (ja) | 管理装置、情報処理装置、情報処理システム及びデータ転送方法 | |
| CN106951390A (zh) | 一种可降低跨节点访存延时的numa系统构建方法 | |
| NO343359B1 (en) | Interconnect switch in multiprocessor systems | |
| JP2019087183A (ja) | 情報処理装置、演算処理装置及び情報処理装置の制御方法 | |
| WO2011148925A1 (ja) | 半導体装置とネットワークルーティング方法とシステム | |
| JP2001222517A (ja) | 方向分離二重リング構造を有する分散共有メモリ多重プロセッサシステム | |
| US20050289101A1 (en) | Methods and systems for dynamic partition management of shared-interconnect partitions | |
| WO2019149031A1 (zh) | 应用于节点系统的数据处理方法及装置 | |
| CN119449241A (zh) | 复杂电子系统RapidIO链路质量保障方法、装置、介质及系统 | |
| US20120236843A1 (en) | Information processing apparatus and method of switching settings thereof | |
| CN108632142A (zh) | 节点控制器的路由管理方法和装置 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20150512 |
|
| A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20151224 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20160119 |
|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20160302 |
|
| TRDD | Decision of grant or rejection written | ||
| A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20160315 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20160328 |
|
| R150 | Certificate of patent or registration of utility model |
Ref document number: 5920105 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
| LAPS | Cancellation because of no payment of annual fees |